我们已成为WordPress网站上恶意DDOS攻击的受害者。
值得庆幸的是,它们应该很容易被删除,因为它们是GET请求,并在URL的末尾添加了字符串?ptrxcz。
考虑到这一点,我们已经设置了规则,为使用.htacess实现此目的的请求提供403权限错误页面。问题是这些似乎不适用于安装的永久链接。
这是我的完整.htaccess文件。
RewriteEngine On RewriteCond %{QUERY_STRING} .*ptrxcz.* RewriteRule (.*) - [F] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
开头部分是使用ptrxcz将用户重定向到403页面。如果我删除它下面的WordPress规则,这可以很好地工作,但包含它们之后它就永远不会有效。
令人沮丧地使用带有QUERY_STRING搜索的负正则表达式正确反向工作(使用查询字符串阻止除请求之外的所有内容,如下所示:
RewriteCond %{QUERY_STRING} !.*ptrxcz.*
(注意添加!)
有没有人有任何想法:
答案 0 :(得分:1)
我遇到了同样的问题,但是它非常严重,我提出了一个小型Web服务器作为前端并过滤掉这些请求。相关的iptables规则是:
iptables -A INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string'ptrxcz_'-j DROP
它指示系统检查请求的前70个字符,如果找到'ptrxcz_',则静默删除请求。我尝试返回错误消息,但错误代码消耗的带宽不值得,因为连接的另一端永远不会有用户读取错误。
我创建了一篇描述我采取的步骤的博客文章:
http://web.htcomp.net/?pageid=85&blogid=2
拉里
答案 1 :(得分:0)
如果您使用QUERY_STRING
替换上面代码中的THE_REQUEST
,那么这样可以正常工作,并且完全符合WordPress中的要求。