Reputation: 153
In vcl_recv I'm trying to send a 403 to requests that contain the following characters in the url: ",',<,>,(, and )
if(req.url ~ "[\'\<\>()].*\.html" ) {
return (synth(403, "Forbidden"));
}
everything works except the double quote " I tried regex like:
"[\"\'\<\>()].*\.html"
"[\\"\'\<\>()].*\.html"
"[%22\'\<\>()].*\.html"
"[x22\'\<\>()].*\.html"
All of them do not compile with "varnishd -C -f default.vcl" I'm currently on varnish-4.1.1 Does anyone know how to escape the " correctly?
Upvotes: 4
Views: 2479
Reputation: 6062
%22
will give you a double quote within your quoted string in Varnish VCL
Upvotes: 2
Reputation: 9875
How about:
if (req.url ~ "[\x27<>()\x22]") {
return (synth(403, "Forbidden"));
}
Upvotes: 7