我有一些可疑的请求进入我的服务器,包含%ff和%FF (例如, /blog/%ffupdates/ 。我每天得到数以千计,并希望开始redirect到403.我目前有一个端点我用这个黑洞这样的事情,并想重写这些URL指向该端点。
目前,我正在尝试:
rewrite ^/.*?%ff.*?$ https://domain.com/forbidden permanent;
我完全明白,这可能太过于贪婪的比赛; 不过,我只是想尽一切办法来开始工作。
现在,当我尝试这一点,并查看debugging日志,好像%ff被转换为 (是的,这应该是问号钻石thingy)。
例如,在日志中有这样的事情:
*4 "^/.*?%ff.*?$" does not match "/blog/ updates/"
看来,因为%ff被转换,我实际上不能匹配string。
我使用SSL和SPDY运行Nginx 1.7.1。
有什么想法吗?
你应该能够通过正则expression式匹配。 例如:
location ~ /\xff/ { return 403; }