防止我的网站被复制

信息安全 Web应用程序 http 访问控制 drm
2021-08-09 23:01:10

是否可以保护我的网站免受HTTrack Website Copier或任何类似程序的影响?
没有设置来自用户的最大 HTTP 请求数。

4个回答

不,没有办法做到这一点。如果不设置连接参数限制,甚至没有办法让它变得相对困难。如果合法用户可以访问您的网站,他们可以复制其内容,如果他们可以使用浏览器正常访问,那么他们可以编写脚本。

您可以设置用户代理限制、cookie 验证、最大连接数和许多其他技术,但没有一个可以阻止有人决定复制您的网站。

使用用户名和密码保护您要保护的网站部分。然后只为签署 NDA(或类似协议)的人分配用户名和密码,表明他们不会从您的站点提取或复制信息。

另一个技巧是从 AJAX 加载所有内容...并从更改的路径(例如 ~/todays-date)加载 AJAX 数据 URL 并将其与 javascript 同步。然后,即使有人下载您的内容,数据也会在 24 小时内过期。

即便如此,没有什么能阻止一个坚定的熟练攻击者获得离线副本,你可以让它变得更难,这样就不值得了。

正如@Adnan 在他的回答中已经指出的那样,确实没有办法阻止一个有决心的人复制您网站的快照。我在这里使用了快照这个词,因为这就是这些内容抓取工具(或收割机)真正复制的内容。他们没有(或至少不应该)访问您的后端,您的网站内容实际上是在该后端生成并显示给最终用户的,因此他们能做的最好的事情就是复制其输出,您可以在这样的正如@makerofthings7 在他的回答中指出的那样,及时更改或根据其预期接收者(DRM 方案、水印...)进行调整的方式

关于已经回答的内容就这么多。但是关于这种威胁,我觉得在提到的答案中还没有很好地涵盖一件事。也就是说,大多数此类内容抓取是由机会主义和自动网络爬虫完成的,我们看到有针对性的攻击要少得多。好吧,至少在数量上 - 请耐心等待。

这些自动爬虫实际上可以通过使用各种WAF(有些甚至可能使用蜜罐以启发式方式确定威胁)非常有效地被列入黑名单,这些 WAF 保持更新的黑名单域数据库(CBL 或社区禁止列表、DBL 或域阻止列表DNSBL s 或基于 DNS 的黑洞列表,...),这些自动内容抓取工具在其中运行。这些 WAF 将根据三种主要方法拒绝或授予对您的内容服务 Web 应用程序的访问权限:

  • 确定性黑名单:这些是基于内容抓取工具将发出的 Web 请求特征的检测。其中一些是:请求发起的 IP 地址、反向 DNS 解析的远程主机名、前向确认的反向 DNS 查找(请参阅此处我的问题之一中的解释)、用户代理字符串、请求 URL(例如,您的 Web 应用程序可以隐藏一个蜜罐 URL在确定请求不是来自列入白名单的地址(例如合法的搜索引擎爬虫/蜘蛛)之后,内容抓取工具可能会在其响应中遵循的地址......以及与自动 Web 请求相关的其他指纹信息。

  • 启发式黑名单:这是一种通过加权确定性方法中描述的单个 Web 请求的参数(反垃圾邮件过滤器使用基于计算贝叶斯概率的类似方法)或通过分析多个 Web 请求来确定威胁的方法,例如:请求率、请求顺序、非法请求数……这可能有助于确定请求是来自真实的预期用户,还是来自某些自动爬虫。

  • 外部 DNSBL/CBL/DBL:我已经提到依赖外部 DNSBL/CBL/DBL(例如Project Honey PotSpamhausUCEPROTECT等),其中大多数实际上比仅仅跟踪垃圾邮件发送者有用得多和spambot感染的主机,并在 IP 地址、主机名、CIDR 范围......在他们发布的黑名单中保持一种攻击(例如论坛垃圾邮件发送者抓取率滥用)。一些 WAF 将具有连接到这些数据库的能力,从而为您免去被同一参与者针对的麻烦,而该参与者可能已经因在另一台 Web 服务器上检测到的相同活动而被列入黑名单。

现在,有一点需要说清楚——这些方法都不能被认为是防弹的!它们将删除大部分有问题的 Web 请求,这本身就很有价值,并且可以让您更好地关注那些更难检测到以某种方式绕过您的保护的违规者。

当然,对于自动爬虫/内容抓取器检测(以及它们自己的对策 - 检测避免技术),我不会在这里描述,也不会列出所有可能的 WAF 及其功能,不想测试你的耐心或达到极限本问答的目的。如果您想详细了解可以采用哪些技术来阻止此类不受欢迎的访问者,那么我建议您阅读有关OWASP StingerOWASP AppSensor项目的文档。


编辑添加: HTTrack 作者的建议可以在HTTrack 网站复印机常见问题解答中阅读:如何限制网络滥用 - 网站管理员滥用常见问题解答文档,以及单一确定性检测方法不起作用的原因(没有将违规 IP 列入黑名单事后地址或通过其他蜜网的经验),如果对手被设置为user agent通过将其设置为真实和合法网络浏览器的许多用户代理字符串中的任何一个来混淆蜘蛛的字符串,并且不尊重robots.txt指令,通过一瞥就会变得相当明显HTTrack 用户指南. 为了节省您阅读它的麻烦,HTTrack 包含简单的配置和命令行标志,以使其在隐身模式下工作,并且在更简单的检测技术下看起来与任何其他合法用户一样良性。

人类用户看到的一切,他都可以记录下来。正如@Adnan 指出的那样,这相当容易,并且可以自动化。

然而,一些网站在阻止大规模吸食方面仍然取得了一些相对成功。例如,考虑谷歌地图许多人偶尔会尝试通过脚本来恢复大面积的高清地图。有些人成功了,但大多数人都被谷歌的防御所抓住。碰巧的是,很难制作一个自动下载器,从服务器的角度来看,它就像在人为控制之下一样。人类有各种各样的延迟和使用模式,精明的系统管理员可以注意到和检查。

例如,在Stack Exchange上也有类似的技巧。如果您尝试自动访问该站点,您很快就会被重定向到带有CAPTCHA的页面。

归根结底,这种安全性并不是很令人满意,因为防御者和攻击者是平等的:它是狡猾对抗狡猾。所以,这很昂贵:它需要思考和维护。然而,一些网站仍然这样做。

攻击者击败反自动化安全措施的一种通用方法是“自动化”真人的啜饮。在一些国家可以雇佣非常便宜的人力。