基本上我想检测传入的http请求来自浏览器?我想通过Web服务和ajax停止所有其他机器人调用吗?
答案 0 :(得分:2)
希望这会有所帮助:Detecting-Ajax
答案 1 :(得分:1)
不会隐藏自己的真实身份。这两个标题应该足以检查:
$_SERVER['HTTP_X_REQUESTED_WITH']
- 标题的存在(信用转到Nataraj)$_SERVER['HTTP_USER_AGENT']
- 您必须收集典型子字符串列表才能告诉机器人和浏览器很多人尊重 /robots.txt ,Tichodroma muraria给了你一个很好的参考,他应该发布一个答案。
将战斗升级到一个完全不同的水平,但如果你付出的努力比机器人开发者愿意的更多,你也可以胜过它们。例如。你可以
$_SERVER['HTTP_REFERER']
,或者,如果没有,根据安全参数,我的意思是
http://example.com/?param=78364528
,其中 param 是通过 salt ,访问者的IP地址,一年中的一天, sessionid Cookie,用户代理字符串,也许还有别的东西。
答案 2 :(得分:0)
如果您依赖它是安全的,请不要使用此技术。因为标头可能被恶意用户欺骗!这可能不适用于您的情况,但可能适用于查看此Q& A的其他用户。