我的服务器受到严重攻击。大多数请求都是这样来的:
46.43.84.214 - - [15/May/2012:11:21:45 +0400] "GET / HTTP/1.0" 200 65859 "2r4k68998q24ay.ru" "Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)"
Run Code Online (Sandbox Code Playgroud)
所有此类请求的 HTTP 协议版本都相同。我可以以某种方式在 Web 服务器级别阻止 HTTP 1.0 请求吗?我试过这个来消除攻击(重定向到一个空文件):
if ($server_protocol ~* "HTTP/1.0") {
rewrite ^/ http://example.com/white.txt;
}
Run Code Online (Sandbox Code Playgroud)
似乎没有多大帮助,我在日志中没有看到任何此类重定向。我使用 nginx 1.0.9 作为 Apache 2.2.3 的反向代理。
任何帮助表示赞赏。
你可以使用这样的东西
if ($http_user_agent ~* "Vonna.com" ) {
return 444;
}
Run Code Online (Sandbox Code Playgroud)
444 将关闭连接而不返回任何内容,确保尽可能低的影响。但是,如果您想通知可能的合法用户,请使用 400 之类的东西。
此外,可能会被推荐人阻止,尽管大多数机器人也很容易欺骗它。
就阻止整个 HTTP 1.0 而言,您应该先检查一下。如果您仍想将该块实现为临时解决方案,则应该可以使用类似的方法。
if ($server_protocol ~* "HTTP/1.0") {
return 444;
}
Run Code Online (Sandbox Code Playgroud)
基本上与您拥有的相同,除了没有重写 - 如果我没看错,您的使用使它只是停留在一个永久循环中。
归档时间: |
|
查看次数: |
8943 次 |
最近记录: |