如何使用 rewriterule 阻止攻击?

如何使用 rewriterule 阻止攻击?

收到一堆虚假请求袭击我的服务器。

想要阻止任何包含 http:// 的请求。

例子:

domain.com/forum/function/component.php=http://bogusdomain.gov.ve/images/foo.txt

我想

RewriteRule ^(.*=http://) - [F] 

可以这样做,但是似乎不起作用。

有什么建议么?

答案1

您没有提到操作系统,这也不是您所要求的(重写规则)——但它确实可以阻止攻击。

我用失败禁止阻止 Ubuntu 上的所有类型的垃圾;使用 Web 服务器日志、sshd 日志和其他日志。

一个事件 = 一个正则表达式 + 一个日志文件。

规则可以规定,当 T 时间内发生 NN 事件时,在防火墙中对该 IP 添加 X 分钟的禁令。默认值为 10 分钟……如果您不小心禁止自己,这很好。如果您不担心这一点,可以设置更长的时间。

这种方法的好处在于,您可以禁止来自该 IP 的所有流量,而不仅仅是针对 Web 服务器的流量。此外,流量不会收到“REFUSED”或“FORBIDDEN”之类的指示,而是会直接挂起,永远不会被传送或确认。

答案2

如果您担心这样的请求,那么您最好解决问题的根源,即在 PHP 等中关闭 allow_url_fopen。

至于重写规则...其他重写规则有效吗?(即引擎是否启用?)^。=http://.我猜 $ 应该匹配,不需要括号,因为你没有重复使用匹配

相关内容