【问题标题】:Using .htaccess to prevent a DDOS attack not working with Permalinks使用 .htaccess 防止 DDOS 攻击无法使用永久链接
【发布时间】:2013-02-20 15:26:59
【问题描述】:

我们已成为 WordPress 网站上恶意 DDOS 攻击的受害者。

值得庆幸的是,它们应该很容易被删除,因为它们是带有字符串 ?ptrxcz 的 GET 请求附加到 URL 的末尾。

考虑到这一点,我们设置了规则,为使用 .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. 如何使它与永久链接一起使用
  3. 为什么查询字符串上的负正则表达式有效,而正则表达式无效。

【问题讨论】:

  • 彼得,请回答你自己的问题,所以它不会挂在“未回答”列表中...你知道5G Blacklist吗?
  • 是的,对不起,伙计。它说我无法回答自己的问题 8 小时...

标签: wordpress .htaccess permalinks ddos


【解决方案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

拉里

【讨论】:

  • 感谢拉里的输入...谢天谢地,我的情况还不错,我可以用简单的 .htaccess 规则阻止它,但如果它恢复得更强大,那么感谢您的提醒!
【解决方案2】:

如果您将上面代码中的QUERY_STRING 替换为THE_REQUEST,那么它可以正常工作并且完全符合WordPress 中的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 2023-03-14
    相关资源
    最近更新 更多