我们突然成为被告知是DDOS攻击的受害者。我们正在尝试使用一些.htaccess规则来阻止违规参数,使用以下内容显示对主页上发出的任何帖子请求的403禁止页面以及查询字符串开头的特定字段的任何请求:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(ptrxcz|xclzve).* [NC]
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F,L]
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F,L]
基本上,每当我使用wget在SSH中使用违规查询字符串访问文件但在浏览器窗口中没有访问时,这种方法就可以正常工作。
此外,Postmaster Google Chrome添加阻止了对主页的帖子请求,但是curl -d请求没有被阻止,因此我发现很难确定哪些工具可以信任,因为它们会给出不同的结果(浏览器) ,SSH,Postmaster)。
我也使用永久链接的Wordpress,我想知道这些是否会以某种方式影响它,因为这些是.htaccess文件中唯一的其他内容。一旦我从.htaccess文件中删除它们,我就会按预期工作。这是我现行规则之后的Wordpress .htaccess。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
此外,如果我更改我的WordPress前规则并删除[F]和REMOTE_ADDR部分并将其替换为以下内容以将其重定向到不存在的URL,则会重定向,这意味着它可能是相关的到[F]和REMOTE_ADDR部分。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(ptrxcz|xclzve).* [NC]
RewriteRule ^(.*)$ http://www.pleasegoawayandnevercomebackagain.com [R=301,L]
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://www.pleasegoawayandnevercomebackagain.com [R=301,L]
除了以上和进一步调查。以下规则有效:
RewriteEngine On
RewriteCond %{QUERY_STRING} !.*test.* [NC]
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F]
这里的区别是我正在检查查询字符串值的否定匹配。这意味着除了查询字符串中包含test的那些页面外,每个页面都被禁止。您是否知道为什么负面匹配有效但积极搜索不起作用?这是一个语法问题,还是与在htaccess重写条件中搜索正值有关?
答案 0 :(得分:0)
可能对您有所帮助的一些想法:
确保在.htaccess文件中保留#BEGIN WordPress和#END WordPress。将其余部分放在你上面的规则上
尝试安装插件:更好的WP安全性:http://wordpress.org/extend/plugins/better-wp-security/ - 它可以节省生命:)
答案 1 :(得分:0)
如果您使用QUERY_STRING
替换上面代码中的THE_REQUEST
,那么这样可以正常工作,并且完全符合WordPress中的要求。