我已经屏蔽了大多数机器人,它们发送使用 .htaccess 向我的网站发送 POST 请求。
每次这些机器人尝试访问我的网站时,它都会收到 403 禁止错误消息。
我的问题是,如果我在 .htaccess 文件中阻止了它们,为什么我的带宽使用量仍在增加?
我一直认为网络托管带宽是通过我的服务器发送的数据量来衡量的,而不是通过它接收的数据量来衡量的。
有没有办法配置我的.htaccess 文件以忽略这些机器人并且不发回状态代码?
顺便说一句,我正在使用具有“无限”带宽的共享服务器,但这些机器人浪费的带宽量实在是太荒谬了。
谢谢!
答案1
.htaccess 文件会告诉您的服务器应该向这些机器人发送什么具体回复。因此请求仍在发生,您仍在发回数据(403 消息)。
您无法阻止僵尸网络请求到达您,只有您的提供商可以在它到达您的服务器之前阻止它。但是,您只需关闭此 IP 的连接即可不发送任何内容。我不确定 Apache 是否有模块可以做到这一点,否则您可以使用 iptables 等软件防火墙来做到这一点。
答案2
当你的.htaccess
文件生效时,客户端的有效负载已经通过了服务器的网络接口。从你的 ISP 的角度来看,你的服务器的传入和传出流量基本上没有区别。你或你的提供商无论如何都必须付费。
如果你不想发生任何数据传输,你需要在 ISP 的边界路由器中阻止客户端(或者至少在数据包过滤器中阻止客户端)。不是在服务器本身上运行)。
答案3
根据其他答案,一旦机器人进入获得 403 响应的阶段,您就已经发送和接收了数据。
如果您可以找到一个 Apache 模块来简单地断开连接,那么最好根本不要响应。
如果您可以控制主机并使用 SYN cookie,则可能还值得将您阻止的所有 IP 路由到 127.0.0.1(或者更好的是,将它们添加到 iptables 链中的 DROP 规则中)。
答案4
你可以采取几种方法。一种是通过 iptables 设置防火墙规则。第二种是在 robot.txt 上禁止这些机器人