如何在 varnish vcl 中转义双引号

How to escape a double quote in varnish vcl

在 vcl_recv 中,我尝试向 url 中包含以下字符的请求发送 403:",',<,>,(, and )

if(req.url ~ "[\'\<\>()].*\.html" ) {
  return (synth(403, "Forbidden"));
}

一切正常,除了双引号 " 我试过像这样的正则表达式:

"[\"\'\<\>()].*\.html"
"[\"\'\<\>()].*\.html"
"[%22\'\<\>()].*\.html"
"[x22\'\<\>()].*\.html"

所有这些都不用"varnishd -C -f default.vcl"编译 我目前使用的是 varnish-4.1.1 有谁知道如何正确转义 "?

怎么样:

if (req.url ~ "[\x27<>()\x22]") {
    return (synth(403, "Forbidden"));
}

Regex test

%22 会在 Varnish VCL

中的引号字符串中给你一个双引号