在 Nginx 重写规则中匹配 %ff

在 Nginx 重写规则中匹配 %ff

我的服务器收到一些包含%ff和的可疑请求%FF(例如/blog/%ffupdates/。我每天收到数千个这样的请求,我想开始将它们重定向到 403。我目前有一个端点,我用它来黑洞这类东西,我想重写这些 URL 以指向该端点。

目前,我正在尝试:

rewrite ^/.*?%ff.*?$ https://domain.com/forbidden permanent;

我完全理解这可能是一场过于贪婪的比赛;然而,我只是想最初让某件事顺利进行。

现在,当我尝试这个并查看调试日志时,它似乎%ff正在转换为(是的,这应该是问号菱形)。

例如日志中有这样的内容:

*4 "^/.*?%ff.*?$" does not match "/blog/�updates/"

看起来是因为%ff被转换了,所以我实际上无法匹配字符串。

我正在运行带有 SSL 和 SPDY 的 Nginx 1.7.1。

有什么想法吗?

答案1

你应该能够通过正则表达式匹配它。例如:

location ~ /\xff/ {
    return 403;
}

相关内容