我正在尝试制作一个好的网络流量过滤器,我的目标是禁止所有机器人、爬虫、蜘蛛、非真实用户,并仅允许特定的浏览器。
我在 PHP 中做了一些测试,在 JavaScript 中做了一些测试,但我不认为它做得很好。我想请教一些专家的意见。我认为使用 PHP + JavaScript + robots.txt + .htaccess 的组合可以做到这一点。
我知道用户代理可以伪造,但我想知道是否有更好的方法来检测它。例如,我想只允许用户使用 Mozilla Firefox(无论版本如何)。
所有其他浏览器都应该进入排除列表或类似的列表,这就像一个过滤器。
执行此操作的最佳方法是什么?简而言之,检测浏览器仅允许 Firefox,并避免所有假用户、机器人、蜘蛛、爬虫和其他垃圾。
最佳答案
好吧,让我尝试在这里提供一些想法。
您应该结合使用多种技术:
- 机器人会将合法的爬虫拒之门外;
- 在客户端使用一些 Javascript 验证来阻止大多数抓取工具(这些抓取工具很少能够运行 Javascript);
- 在服务器端,使用 user agent service识别和过滤用户代理;
- 跟踪 IP 地址,以便您可以一次性禁止“已知违规者”;
为了对第 2 点进行更多扩展,您的目标网页可以使用 JavaScript 来删除具有“已知”值的 cookie,该值可以映射回发起者。一个示例是获取用户代理和 IP 地址并计算哈希值。这仍然可以伪造,但大多数犯罪者只会决定忽略您的网站,而不是努力绕过您的保护措施。
希望这有帮助。
关于javascript - 如何禁止爬虫、机器人、假用户并仅允许特定浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41652221/