如何实现Web Scraping Protection来保护您的网站


通过Mike Khorev.

Web Scraping是从网站中提取数据或内容的过程。当我们右键单击网站的图像并保存它时,我们在技术上正在执行Web刮擦,但也可以使用程序或机器人执行擦除。这些自动化工具可以以更快的速率提取更多数据,这将转化为较低的成本。 

随着那个说,Web刮板(也称为屏幕刮擦,网站数据提取和网络收获)可能是无害的和完全合法的。在某些情况下,它也可以用于恶意目的,负担网站的服务器,甚至导致其他形式的网络犯罪攻击。 

Web扫描程序可以发送许多请求,即典型的人类用户和肇事者可以在技术上用于执行DDOS(分布式拒绝服务)攻击。虽然Web刮板是合法的,用于提取公开的数据,但是一些Web扫描程序还可以绕过目标网站的安全性和窃取应该隐藏的敏感数据(即,网站用户的财务信息)。 

Web刮刀程序可以同时合理简单,非常复杂。我们甚至可以构建自己的Web刮刀机器人虽然它需要相对高级的编程知识。 

Web Scraper越高的是,建立它的难度越难。各种预构建的Web刮刀程序是广泛的,其中一些免费提供。其中一些非常复杂,具有多种高级功能。 

预构建的Web刮板的可用性是为什么网站所有者必须了解Web刮擦概念,如何识别Web扫描活动,以及如何在需要时阻止其活动。 

WEB擦除保护方法

  1. 保护您的网站

以下是您应该在您的网站上实施的一些基本Web擦除预防方法: 

  • 适当的使用条款和条件

防止内容刮擦的基本但有效的方法是明确声明您不允许在您使用条款中允许Web或内容刮擦。例如,你可以说: 

“您可以仅在本网站上使用或重现本网站的内容以进行个人和非商业用途”。 

这样做可能不会阻止黑客恶意意图,但会阻止那些诚实的意图,给你一个合法的优势。 

  • 防止热门思考

热链接在使用原始站点的资源时在其他网站上显示资源(图像,视频或其他文件)。在Web擦除期间,它是一种常见的做法,可直接复制链接和图像。当您在其他站点上显示图像时,防止冻结时,它们不会使用您的服务器的资源。虽然这不会阻止他人窃取和使用您的内容,但至少可以减轻损坏。 

  • 使用跨站点请求伪造(CSRF)令牌

在您的网站上实施CSRF令牌可以帮助防止自动化机器人和其他自动化软件在您的网站URL上进行任意请求。 

CSRF令牌基本上是Web服务器生成的唯一和密钥,当客户端执行HTTP请求时发送到客户端。当客户端做另一个请求时,服务器端应用程序将检查此请求是否包含CSRF令牌,并且如果丢失令牌,则拒绝请求。 

要绕过CSRF令牌,Web Scraper Bot必须在用请求捆绑它之前搜索右令牌,并且只有更复杂的扫描程序程序可以执行此操作。 

  1. 监控您的流量并限制异常活动

防止Web刮刀的最佳方法是建立监控系统。因此,当您的系统检测到指示Web刮板机器人的不寻常的活动时,可以阻止或限制活动。 

以下是一些常见的实践来尝试: 

  • 速率限制:

相当不言自明的。您可以将Web刮板(以及合法用户)限制为特定时间范围内的有限数量的操作。例如,您只能允许从任何特定用户(或IP地址)的每秒或分钟的特定数量的搜索者。这样做会显着减慢Web扫描机器人的活动。 

但是,如果您的限制或阻止流量,则应超出IP地址检测。以下是一些指标,可以帮助您识别刮刀机器人: 

  • 线性鼠标运动和舔
  • 非常快速的表单提交
  • 检查浏览器类型,屏幕分辨率,时区等,以确定坏机器人的存在

在共享Internet连接的情况下,您可能会从相同的IP地址获取合法用户的请求。识别除IP地址之外的其他因素可以帮助您在真正的人类用户和Web刮板之间辨别。 

  • 要求帐户创建

要求用户在可以访问内容之前注册和登录,这可能是Web刮板的良好预防措施。仍然,它也会影响用户体验(UX),可能会阻止合法的用户。所以,谨慎使用。 

此外,一些复杂的Web刮板可以注册并自动与其帐户登录,甚至可以创建多个帐户。这里的良好做法是要求电子邮件地址进行注册并验证电子邮件地址。您还可以实现CAPTCHA测试(更详细信息)以防止Web刮刀机器人创建帐户。 

  • 使用CAPTCHA.

CAPTCHA(“完全自动化测试,告诉计算机和人类分开”)是对Web刮擦和自动脚本(机器人)的有效措施。 

使用CAPTCHA的主要思想是测试应该容易地(或非常容易)由人类用户解决,而是难以通过机器人解决。您可以在敏感页面中包含CAPTCHA,或者您只能在系统检测到可能的刮刀并想要时显示验证码停止内容刮擦

在您的网站上实现CAPTCHA有各种简单的方法。例如,谷歌的recaptcha.是在您的网站上添加CAPTCHA的免费可靠方式。虽然谷歌的recaptcha相当可靠,但它并不完美,它确实有几个弱点。

要记住的一件事是不包括以任何形式在页面上的CAPTCHA中的解决方案。某些网站犯了在页面本身上的HTML标记中包含解决方案的错误。刮板可以简单地废除它并使用它来绕过验证码。

请记住,Web刮板有各种方式绕过CAPTCHA。例如,有各种CAPTCHA农场服务,真正的人类被支付以解决CAPTCHA,使其无用。在这种情况下,我们需要将CAPTCHA与 高级机器人检测软件这可以检测专用于解决CACTCHAS和recaptchas的CAPTCHA农场和机器人。 

  • 不要公开您的整个内容和API端点

不要为脚本或机器人提供方法,以访问一个页面上的所有内容。例如,请勿在目录页面上列出所有博客文章,但您可以通过您的网站在现场搜索中获取这些帖子。 

这样,Web刮刀必须搜索全部即使对于最复杂的刮刀,可能的短语是找到所有文章,这将是非常困难和耗时的。希望刮刀将放弃由于这种简单的措施。 

但是,搜索“”“,”和“或其他通用关键字可能揭示几乎所有内容的内容。您只能通过显示10或20个结果来解决此问题。 

确保您没有公开任何API,尤其是API端点。刮刀可以反转工程师并在刮刀脚本中使用它。相反,确保您的所有API端点都很难使用。 

  1. 保护您的页面

我们已经提到过,您应该要求有特定内容的登录以避免内容刮。这样,您可以阻止自动机器人,即使它们可以登录,您可以准确跟踪其操作。检测到刮擦活动时,您也可以禁止此帐户。 

在需要注册和登录时不会100%停止内容刮擦,但它至少会给您洞察和控制。 

您可以在此处使用的一些提示: 

  • 定期更改HTML

Web刮板中的常见做法是在网站的HTML标记中找到模式和可能的利用。然后,犯罪者可以通过利用漏洞使用这些模式来启动您网站HTML的进一步攻击。 

据说,考虑经常更改网站的HTML标记,或确保您的网站的标记是不均匀的或不一致的。这样做可能会劝阻无法有效地找到您网站的HTML模式的攻击者。 

这些更改并不一定意味着您需要完全重新设计您的网站,但您可以定期简单地更改HTML和CSS文件中的ID和类。 

  • 创造蜂蜜锅或陷阱页面

蜂蜜罐页面是页面(即一个隐藏链接)上的隐藏页面或隐藏元素,即您的普通人访客不会点击。 Web刮板倾向于单击页面上的每个链接,因此它们会意外点击此链接并输入“陷阱”。例如,您可以伪装一个链接以将页面的背景混合。 

当特定访客访问此蜂蜜盆页面时,我们几乎可以确定这不是人类访客,您可以监控活动。如果需要,您可以限制甚至阻止此客户端的所有请求。 

结束词语

Web刮板可以吃掉你的网站的资源,也可以导致其他恶意活动,如被盗的内容第7层DDOS攻击。因此,网站所有者和刮刀之间的斗争往往是一个冗长和持续的一项:网站所有者必须始终保持在黑客和刮刀前方,以防止恶意内容刮擦和其他网络安全威胁。

以上,我们已经讨论了在防止Web刮擦方面进行了几种可能的解决方案,但它们仍然不是针对高级和复杂的Web刮刀机器人的100%预防措施。最好始终保持小心并监控您的流量,以便尽快识别恶意流量和节流/阻止它。 


Mike Khorev对IT空间中的所有新兴技术充满热情,并喜欢写下所有这些技术。他是一生营销和互联网专家,拥有超过10年的网络技术经验,SEO,在线营销和网络安全。


Follow 华晨安全杂志on 推特, Facebook, 和linkedin确保您收到最新安全和网络安全新闻和信息的警报。