如何拒绝wget?

How to refuse wget?

我正在将图像上传到 public 目录,我想阻止用户使用 wget 下载全部图像。有办法吗?

据我所知,肯定有。我发现许多站点,作为 public 浏览器,我可以下载单个图像,但是一旦我 运行 wget 反对他们,我就会得到 403(禁止访问)。我试过使用 no-robot 参数,但我仍然无法下载它们。 (出于安全原因,我不会在这里命名站点)。

您可以使用用户代理字符串限制访问,例如参见 apache 2.4 mod_authz_core。 默认情况下,Wget 也遵守 robots.txt 指令。这应该忏悔任何临时用户。

但是,仔细查看 wget 手册可以绕过这些限制。 Wget 还允许在请求之间添加随机延迟,因此甚至可以绕过基于访问模式分析的高级技术。

所以正确的做法是搞乱wgetlink/reference识别引擎。也就是说,您想要保持未镜像的内容应该使用 javascript 动态加载,并且 url 必须以需要 js 代码解码的方式进行编码。这将保护您的内容,但需要为您想要为您的网站编制索引的网络机器人手动提供未混淆的版本,例如 google 机器人(不,它不是唯一应该关心的机器人)。另外,有些人默认不 运行 js 脚本(深奥的浏览器、低端机器、移动设备可能需要这样的策略)。