javascript - 如何禁止爬虫、机器人、假用户并仅允许特定浏览器?

标签 javascript php .htaccess browser-detection robot

我正在尝试制作一个好的网络流量过滤器,我的目标是禁止所有机器人、爬虫、蜘蛛、非真实用户,并仅允许特定的浏览器。

我在 PHP 中做了一些测试,在 JavaScript 中做了一些测试,但我不认为它做得很好。我想请教一些专家的意见。我认为使用 PHP + JavaScript + robots.txt + .htaccess 的组合可以做到这一点。

我知道用户代理可以伪造,但我想知道是否有更好的方法来检测它。例如,我想只允许用户使用 Mozilla Firefox(无论版本如何)。

所有其他浏览器都应该进入排除列表或类似的列表,这就像一个过滤器。

执行此操作的最佳方法是什么?简而言之,检测浏览器仅允许 Firefox,并避免所有假用户、机器人、蜘蛛、爬虫和其他垃圾。

最佳答案

好吧,让我尝试在这里提供一些想法。

您应该结合使用多种技术:

  1. 机器人会将合法的爬虫拒之门外;
  2. 在客户端使用一些 Javascript 验证来阻止大多数抓取工具(这些抓取工具很少能够运行 Javascript);
  3. 在服务器端,使用 user agent service识别和过滤用户代理;
  4. 跟踪 IP 地址,以便您可以一次性禁止“已知违规者”;

为了对第 2 点进行更多扩展,您的目标网页可以使用 JavaScript 来删除具有“已知”值的 cookie,该值可以映射回发起者。一个示例是获取用户代理和 IP 地址并计算哈希值。这仍然可以伪造,但大多数犯罪者只会决定忽略您的网站,而不是努力绕过您的保护措施。

希望这有帮助。

关于javascript - 如何禁止爬虫、机器人、假用户并仅允许特定浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41652221/

相关文章:

javascript - Mocha before 函数 - 没有大括号错误的 lambda;带有花括号的 lambda 可以工作

javascript - jQuery 未定义,即使它正确加载

php - Yii2 加载数据本地 INFILE

php - 在成功页面添加可下载链接

.htaccess - 如果 url 包含特定字符串,htaccess 重定向

wordpress - 重定向子域并保留 url 结构

javascript - 每个循环淡入淡出动画中的 jQuery 异步行为

javascript - 将阅读更多按钮链接到另一个页面的 ID

php - 修复错误 : mysql_num_rows(): supplied argument is not a valid MySQL result resource

regex - .htaccess Mod Rewrite 不应允许额外的字符