2013-02-20 109 views
0

我们已经成为在WordPress网站上恶意DDOS攻击的受害者。使用.htaccess防止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.* 

(注意加)

没有人有任何想法:

  1. 为什么它不与固定链接工作
  2. 我怎样才能使其与烫发工作alinks
  3. 为什么查询字符串的负面正则表达式有效,但不是正面的。
+2

彼得,请回答您自己的问题,所以它的“未答复”名单上没有挂起..你知道[*** 5G黑名单***](http://perishablepress.com/5g-blacklist-2013/)吗? – brasofilo 2013-02-20 18:05:51

+0

对不起,队友。它说我不能回答我自己的问题8小时... – 2013-02-21 09:02:51

回答

0

如果您在上面的代码中使用THE_REQUEST替换QUERY_STRING,那么此工作正常,并且完全按照WordPress中的要求进行操作。

1

我有同样的问题,但它足够严重,我提出了一个小型Web服务器作为前端和筛选出这些请求。有关iptables的规则是:

的iptables -A INPUT -p根据tcp --dport 80 -m串--to 70 --algo BM --string 'ptrxcz_' -j DROP

它指示系统检查请求的前70个字符,如果找到'ptrxcz_',则默认放弃请求。我试着返回一条错误消息,但错误代码消耗的带宽不值得考虑,因为在连接的另一端永远不会有用户读取错误。

我创建了一个博客帖子描述我所采取的步骤:

http://web.htcomp.net/?pageid=85&blogid=2

拉里

+0

感谢您输入拉里...感谢我的不是很糟糕,我可以用简单的.htaccess规则阻止它,但如果它回来更强,然后感谢抬起头! – 2013-04-22 17:45:58