我的网站有一个数据库查询;填写验证码可为您提供5分钟的查找时间.还有一些自定义代码可以检测任何自动化脚本.我这样做是因为我不希望有人对我的网站进行数据挖掘.
问题在于Google抓取我的网站时看不到查找结果.如果有人正在搜索查找结果中存在的字符串,我希望他们通过谷歌搜索来找到该页面.
对我来说,显而易见的解决方案是使用PHP变量$_SERVER [‘HTTP_USER_AGENT’]绕过Google机器人的CAPTCHA和自定义安全代码.我的问题是这是否明智.
人们随后可以使用Google的缓存来查看查找结果,而不必填写CAPTCHA,但是Google自己的脚本检测方法会阻止他们对这些页面进行数据挖掘吗?
还是会有人让$_SERVER [‘HTTP_USER_AGENT’]出现在Google旁,以绕过安全措施吗?
提前致谢.
解决方法:
Or would there be some way for people to make $_SERVER[‘HTTP_USER_AGENT’] appear as Google to bypass the security measures?
绝对是用户代理很容易伪造.参见例如User Agent Switcher for Firefox.垃圾邮件漫游器也很容易将其用户代理标头设置为Google漫游器.
不过,仍然可能值得一试.我会说只是尝试一下,看看结果如何.如果遇到问题,则可能不得不考虑另一种方法.
识别Google机器人的另一种方法可能是它使用的IP范围.我不知道该机器人是否使用定义的IP范围-可能不是这样,您必须找出答案.
更新:似乎可以通过分析其IP来验证Google Bot.从Google Webmaster Central: How to verify Googlebot
Telling webmasters to use DNS to verify on a case-by-case basis seems like the best way to go. I think the recommended technique would be to do a reverse DNS lookup, verify that the name is in the googlebot.com domain, and then do a corresponding forward DNS->IP lookup using that googlebot.com name; eg:
host 66.249.66.1
1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.host crawl-66-249-66-1.googlebot.com
crawl-66-249-66-1.googlebot.com has address 66.249.66.1I don’t think just doing a reverse DNS lookup is sufficient, because a spoofer could set up reverse DNS to point to crawl-a-b-c-d.googlebot.com.