apache - 通过 Referrer、Agent 或 Page 使用 htaccess 阻止 BotNet
问题描述
我们一直受到僵尸网络的抨击。
我设置了两条规则,减少了 80% 的流量,但这些请求仍然通过。
172.69.34.192 - - [21/Nov/2019:06:03:12 -0600] "POST /wp-login.php HTTP/1.1" 200 453750 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
172.69.34.192 - - [21/Nov/2019:06:03:15 -0600] "GET /wp-login.php HTTP/1.1" 200 452909 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
这个僵尸网络每天更改 +3,000 个不同的 IP 地址,但总是先发布,然后获取。流量是直接的,没有页面引用。
我怎样才能在我的htaccess中使用post和get到wp-login.php的组合来阻止这些并且没有页面:“-”?
到目前为止,我已经准备好这些来阻止 80% 的其他不受欢迎的机器人。
# Stop Bots with Bogus User Agents
SetEnvIf User-Agent "^-$" bad_user
SetEnvIf User-Agent "^$" bad_user
<Files ~ "^(wp-login|xmlrpc)\.php">
order allow,deny
allow from all
Deny from env=bad_user
</Files>
# Block Specific Bots by Name
SetEnvIfNoCase User-agent (yandex|baidu|mj12bot|ahrefsbot|blexbot|dotbot|exabot|seznambot|aihitbot|spbot|mj12bot|obot|deusu|ia_archiver|metauri|flipboardproxy|flicky|pycurl|casper|cmsworldmap|diavol|purebot|comodo|feedfinder|planetwork) not-allowed
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=not-allowed
</Limit>
我正在寻找的是阻止“-”的引用者的东西。也许是这样的,但我不确定这是否是正确的语法,或者我是否可以将它与上面的#Stop Bots 条目结合起来。
SetEnvIf Referrer "^-$" bad_bot
<Files ~ "^(wp-login|xmlrpc)\.php">
order allow,deny
allow from all
Deny from env=bad_bot
</Files>
解决方案
但是我可以添加一个规则,如果它是
wp-login
页面,那么页面引用者就会"-"
被阻止。我只是不知道它的语法
你可以试试这条规则作为你的最高规则(就在下面RewriteBase
一行):
RewriteEngine On
RewriteCond %{THE_REQUEST} /wp-login\.php [NC]
RewriteCond %{HTTP_REFERER} ^-?$
RewriteRule ^ - [F]
对于上述两种情况,这将返回403
(禁止)错误。
推荐阅读
- android - RecyclerView:没有附加适配器;跳过布局没有数据显示
- instagram - 查看 Instagram 中是否存在帐户的最佳 API?
- sass - 错误:编译我自己的引导主题时,`mix($color-1, $color-2, $weight: 50%)` 的参数 `$color-2` 必须是颜色
- python - 在 Python 中使用 ctypes 访问 DLL 返回的对象的内容
- ruby-on-rails-5.1 - 提交输入错误后,f.submit 在返回表单时不起作用 Rails 5.1.6
- sql - 在 Access 查询中添加第三个加入时出现问题
- ios - 如何解决内部 Rocket.chat 服务器中的 SSL 问题
- python - 根据条件合并和替换熊猫数据框行
- excel - 生成参考编号,然后将它们写入相应的工作簿
- c++ - C++ Huffman 代码实现编码大部分时间正确吗?