gpt4 book ai didi

iis-7 - 我被刮了,我该如何防止这种情况?

转载 作者:行者123 更新时间:2023-12-03 20:46:33 28 4
gpt4 key购买 nike

每周运行 IIS 7 几次,我看到来自一个地理位置的 Google Analytics(分析)上的大量点击。他们正在查看的网址序列显然是由某种算法生成的,所以我知道我正在被抓取内容。有什么办法可以防止这种情况发生吗?很沮丧,谷歌不只是给我一个 IP。

最佳答案

反刮削世界中有很多技术。我只是将它们分类。如果您发现我的答案中缺少某些内容,请发表评论。

A. 基于web请求的服务器端过滤

1. 阻止可疑 IP 或 IP。

阻止可疑 IP 的效果很好,但今天大部分抓取都是使用 IP 代理完成的,因此从长远来看,它不会有效。在您的情况下,您会收到来自相同 IP 地理位置的请求,因此,如果您禁止该 IP,则抓取工具肯定会利用 IP 代理,从而保持 IP 独立且不被检测到。

2.使用DNS级别过滤

使用 DNS 防火墙属于防刮措施。简而言之,这是将您的 Web 服务设置为专用域名服务器 (DNS) 网络,该网络将过滤并防止错误请求到达您的服务器。一些公司为复杂的网站保护提供了这种复杂的措施,您可能会更深入地查看 an example这样的服务。

3.有自定义脚本来跟踪用户的统计和丢弃麻烦的请求

正如您所提到的,您已经检测到爬虫抓取网址的算法。有一个自定义脚本来跟踪请求 url 并基于此开启保护措施。为此,您必须在 IIS 中激活 [shell] 脚本。副作用可能是系统响应时间会增加,从而减慢您的服务。顺便说一句,您检测到的算法可能会改变,从而关闭此措施。

4.限制请求频率

您可以设置请求频率或可下载数据量的限制。考虑到普通用户的可用性,必须应用这些限制。与抓取工具的持续请求相比,您可能会设置 Web 服务规则以丢弃或延迟不需要的事件。然而,如果爬虫被重新配置以模仿常见的用户行为(通过一些当今著名的工具:Selenuim、Mechanize、iMacros),此措施将失败。

5.设置最大 session 长度

这种措施是一个很好的措施,但通常现代抓取工具会执行 session 身份验证,因此切断 session 时间并不是那么有效。

B. 基于浏览器的识别和预防

1.为目标页面设置验证码

这是旧时代的技术,在大多数情况下确实解决了抓取问题。然而,如果你的抓取对手利用 anti-captcha services 中的任何一个这种保护很可能会关闭。

2. 将 JavaScript 逻辑注入(inject)到 Web 服务响应中

JavaScript 代码应该在请求的 html 内容之前或与请求的 html 内容一起到达客户端(用户的浏览器或抓取服务器)。此代码用于计数并将某个值返回给目标服务器。基于此测试,html 代码可能格式错误,甚至可能未发送给请求者,从而使恶意抓取工具无法使用。逻辑可能放在一个或多个 JavaScript 可加载文件中。此 JavaScript 逻辑可能不仅适用于整个内容,也可能仅适用于网站内容的某些部分(例如价格)。为了绕过这个措施,爬虫可能需要转向甚至 more complex scraping logic (通常是 JavaScript)是高度可定制的,因此成本很高。

C. 基于内容的保护

1.将重要数据伪装成图像

这种内容保护方法今天被广泛使用。它确实可以防止爬虫收集数据。它的副作用是隐藏为图像的数据被搜索引擎索引,从而降低了网站的 SEO。如果爬虫利用 OCR系统这种保护又可能被绕过。

2.频繁的页面结构变化

这是非常有效的抓取保护方法。它不仅可以更改元素 id 和类,还可以更改整个层次结构。后者涉及样式重组,因此会增加额外成本。当然,如果要保持内容抓取,抓取端必须适应新的结构。如果您的服务负担得起,则不会产生太大的副作用。

关于iis-7 - 我被刮了,我该如何防止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com