我有几个WP网站,他们正在接收大量请求(大约每分钟2万个),如:
www.example.com/adasd-asdasd-asdas-da/
www.example.com/fds-fdsf-dsfds-fds-f/
...
问题是,如果我的数据库中存在“adasd-asdasd-asdas-da”或“fds-fdsf-dsfds-fds-f”或...等条目,它会导致我的数据库检查很多资源。
我一直在谷歌阅读数百个链接,他们都使用ip / rate限制,这对我来说不是解决方案;我不能用它。我看过一些博客,当用户点击某个错误页面时,他们会将用户重定向到Google,这样他们就可以摆脱攻击。但是如何在不关闭整个系统的情况下检查数据库中的每个请求?
要解决这个问题真的很难,因为我的合法网址是:
www.example.com/how-to-buy-a-flow
www.example.com/make-your-dad-happy
...
我已经有19000个帖子,每次用户发送www.example.com/fdsfds-fdsfs-dfds
之类的请求时,我需要在数据库中检查它是否存在。
我已经在使用CloudFlare,它做得很好,但我仍然无法找到如何以简单的方式检查请求是否不在数据库中。
答案 0 :(得分:1)
您可以使用iptables或htaccess阻止攻击者IP。
答案 1 :(得分:1)
看看fail2ban。您可以将其配置为监视apache日志以查找生成的404错误,并通过iptables自动禁止每秒超过X 404错误的IP(N秒)。
设置非常简单。
答案 2 :(得分:0)
...或者,作为上述建议的补充,您可以安装方便的插件block-bad-queries
当然,修改.htaccess
和/或设置iptables
防火墙适用于高级用户,并且您可以完全访问您的Web服务器环境。
答案 3 :(得分:0)
我公司的WordPress网站也是多次DDoS攻击的受害者。有一些策略对我们来说非常宝贵:
/wp-login.php
和/wp-admin.php
未经授权的IP地址