Написал в конфиге:
if ($QUERY_STRING ~* ^.*(\\x[a-f0-9][a-f0-9]){3,}.*$) {
return 403;
}
Запускаю
/etc/rc.d/rc.nginx start
Starting Nginx server daemon...
[emerg]: pcre_compile() failed: missing ) in "^.*(\x[a-f0-9][a-f0-9]" in /etc/nginx/nginx.conf:131
Ладно, я не гордый, с учетом того, что могу и три раза скопипастить переписываю так
if ($QUERY_STRING ~* ^.*\\x[a-f0-9][a-f0-9].*$) {
return 403;
}
http://site.ru/page?r=\\xd0\\xb7\xd0\xb2\xd0\xb5\xd1\x80\xd1\x8c+\xd1\x82\xd1\x85\xd0\xbe\xd1\x80
не режектит :(
Смотрю логи:
2010/02/24 14:20:16 [notice] 16197#0: *10 "^.*\x[a-f0-9][a-f0-9].*$" does not match "r=\\xd0\\xb7\xd0\xb2\xd0\xb5\xd1\x80\xd1\x8c+\xd1\x82\xd1\x85\xd0\xbe\xd1\x80
\\x[a-f][0-9] тоже пробовал. Тоже не матчит. Что я не так делаю?