大型网站(例如维基百科)如何处理隐藏在其他 IP 掩码器后面的机器人?例如,在我的大学里,每个人都搜索维基百科,给它带来了很大的负担。但是,据我所知,维基百科只能知道大学路由器的 IP,所以如果我设置了一个“释放的”机器人(请求之间只有一点延迟),维基百科可以在不禁止整个组织的情况下禁止我的机器人吗?网站实际上可以禁止组织网络后面的 IP 吗?
大型网站(例如维基百科)如何处理隐藏在其他 IP 掩码器后面的机器人?例如,在我的大学里,每个人都搜索维基百科,给它带来了很大的负担。但是,据我所知,维基百科只能知道大学路由器的 IP,所以如果我设置了一个“释放的”机器人(请求之间只有一点延迟),维基百科可以在不禁止整个组织的情况下禁止我的机器人吗?网站实际上可以禁止组织网络后面的 IP 吗?
不,他们将禁止公共 IP,并且所有通过 NAT 访问该 IP 的人也将被禁止。
虽然至少在堆栈如果我们认为我们要禁止一所大学或类似的东西,我们会联系他们的滥用联系人,让他们追踪罪犯并停止问题。
站点不能直接禁止 NAT 后面的 IP。它可以作用于通过非匿名 HTTP 代理传递的 IP - 当这样的代理转发请求时,它通常将该地址附加到 X-Forwarded-For 标头,因此如果来自您的私有网络的访问实际上必须通过这样的代理内部IP可能会被暴露;但是大多数网站(包括维基百科)无论如何都不会信任该标头中的信息,因为它很容易被欺骗以牵连无辜的 IP 或逃避禁令。
然而,还有其他技术试图独立于 IP 地址来唯一标识用户。您可以查询网络浏览器以获取有关它及其运行的系统的大量信息,例如用户代理、屏幕分辨率、插件列表等 - 请参阅https://github.com/carlo/jquery-浏览器指纹在实践中举一个例子。您可以使用此类指纹来控制访问,但根据站点设计,您可以在不参与指纹识别过程的情况下与之交互,即使您不能,机器人也可以提供虚假和随机数据以避免如果您知道这种保护已经到位,请使用一致的指纹。这种控制方法也存在误报的风险,尤其是当涉及到移动设备时,可能会有大量客户端在相同的库存硬件上运行相同的库存客户端(大多数人在特定型号的 iPhone 上运行特定版本的 iOS ,例如,可能会得到相同的指纹)。
通常,IP 地址不足以提供正确的禁令信息。因此,高级网络在网络堆栈的高处工作。
拒绝服务 (DoS) 攻击(您担心创建)通常通过限制初始 TCP 连接设置的速率来处理。这意味着愿意等待的合法用户将通过,而那些只是试图消耗服务器资源的用户则会减慢到无害的程度。这就是 DoS 演变成分布式 DoS (DDoS) 攻击的地方。
连接到服务器后,您可以发出任意数量的请求,Web 服务器管理可以配置要处理的请求数。
无论如何,Web 服务器可能比您的本地网络网关处理更多的容量,这可能是您的用例中的限制因素。我敢打赌,你的大学网络管理员会在维基百科之前敲你的门。
成为一名优秀的互联网公民很重要,因此我将向机器人添加速率限制代码。
还应该指出的是,维基百科提供数据转储,因此对网站进行拖网搜索并不是真正必要的。