我正在将图片上传到公共目录,我想阻止用户使用wget下载整个图片。有没有办法做到这一点?
据我所知,必须有。我发现有很多网站,作为公共浏览器,我可以下载单个图像,但是一旦我对它们运行wget,我就得到403(Forbidden)。我尝试过使用无机器人的论点,但我还是无法下载它们。 (出于安全考虑,我不会在这里为这些网站命名)。
答案 0 :(得分:2)
您可以使用用户代理字符串限制访问,例如,请参阅apache 2.4 mod_authz_core。 Wget默认也尊重robots.txt指令。这应该是任何临时用户的忏悔。
然而,仔细研究wget手册将会绕过这些限制。 Wget还允许在请求之间添加随机延迟,因此即使是基于访问模式分析的高级技术也可能被绕过。
所以正确的方法是搞乱wget链接/参考识别引擎。也就是说,您要保留未镜像的内容应使用javascript动态加载,并且必须以需要js代码解码的方式对URL进行编码。这样可以保护您的内容,但需要为您想要为您的网站编制索引的网络机器人手动提供未经过模糊处理的版本,例如google bot(不,它不是唯一应该关注的人)。此外,有些人默认情况下不运行js脚本(深奥的浏览器,低端机器,移动设备可能需要这样的策略)。