PHP-允许Google绕过CAPTCHA验证-是否明智?

我的网站有一个数据库查询;填写验证码可为您提供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.1

I 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.

上一篇:DVWA-6.1 Insecure CAPTCHA(不安全的验证码)-Low


下一篇:javascript-jQuery Real Person-总是失败