Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何禁止爬虫,机器人,假冒用户,只允许特定的浏览器?_Javascript_Php_.htaccess_Browser Detection_Robot - Fatal编程技术网

Javascript 如何禁止爬虫,机器人,假冒用户,只允许特定的浏览器?

Javascript 如何禁止爬虫,机器人,假冒用户,只允许特定的浏览器?,javascript,php,.htaccess,browser-detection,robot,Javascript,Php,.htaccess,Browser Detection,Robot,我正在尝试做一个好的网络流量过滤器,我的目标是禁止所有机器人、爬虫、蜘蛛、非真实用户,只允许特定的浏览器 我用PHP做了一些测试,用JavaScript做了一些测试,但我觉得做得不太好。我想听听专家的意见。我认为使用PHP+JavaScript+robots.txt+.htaccess的组合可以做到这一点 我知道用户代理可能是伪造的,但我想知道是否有更好的方法来检测它。例如,我只允许用户使用Mozilla Firefox(不考虑版本) 所有其他浏览器都应该转到排除列表或某种类型,这就像一个过滤器

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

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

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

所有其他浏览器都应该转到排除列表或某种类型,这就像一个过滤器


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

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

您应该结合使用以下技术:

  • 机器人将阻止合法的爬虫
  • 在客户端使用一些Javascript验证来阻止大多数爬虫(这些爬虫很少能够运行Javascript)
  • 在服务器端,使用a来识别和过滤用户代理
  • 跟踪IP地址,以便对“已知违规者”实施一次性禁令 为了进一步扩展#2,您的登录页可以使用JavaScript删除一个具有“已知”值的cookie,该值可以映射回发起人。一个例子是获取用户代理和ip地址并计算哈希。这仍然可能是伪造的,但大多数违规者会决定忽略你的网站,而不是绕过你的保护措施


    希望这能有所帮助。

    这里的问题是任何东西都可以伪造,包括ip地址。您可以在浏览器上运行一些javascript来尝试检测浏览器,而不是依赖用户代理,但这也可能是伪造的。我的问题是:你到底想完成什么?为什么要基于浏览器进行过滤?@rogerracel我只是想避免所有的垃圾(蜘蛛、机器人、爬虫等),只关注使用Firefox的真实用户。我知道一切都是假的。但是我在寻找最好的方法来发现,不管最终是否有用户造假。重要的是最大限度地过滤,使任务变得困难。现在我认为这是最好的方法