【问题标题】:How to escape a double quote in varnish vcl如何在清漆 vcl 中转义双引号
【发布时间】:2017-10-14 11:38:50
【问题描述】:

在 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 有谁知道如何正确转义 "?

【问题讨论】:

    标签: varnish vcl varnish-vcl varnish-4


    【解决方案1】:

    怎么样:

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

    Regex test

    【讨论】:

      【解决方案2】:

      %22 会在 Varnish VCL 中的引用字符串中给你一个双引号

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 2013-06-17
      • 2013-03-16
      相关资源
      最近更新 更多