我的网站具有数据库查找;填写一个验证码给你5分钟查找时间。也有一些自定义代码来检测任何自动脚本。我这样做,因为我不希望有人挖掘我的网站。

的问题是,谷歌并没有看到查找结果时,它抓取我的网站。如果有人正在寻找一个字符串,它是存在于查找的结果,我想他们通过谷歌搜索就可以找到这个网页。

我显而易见的解决方案是使用PHP变量$_SERVER['HTTP_USER_AGENT']绕过CAPTCHA和定制安全码为谷歌机器人。我的问题是,这是否是明智的或不

人们可以再使用谷歌的缓存来查看查找结果,而无需填写验证码,但将谷歌自己的脚本检测方法防止其数据挖掘这些页面?

还是会有某种方式为人们做出$_SERVER['HTTP_USER_AGENT']显示为谷歌绕过安全措施?

预先感谢。

有帮助吗?

解决方案

  

还是会有某种方式为人们做出$ _ SERVER [“HTTP_USER_AGENT”]显示为谷歌绕过安全措施?

当然。用户代理是可笑容易伪造。例如见用户代理切换器为Firefox 。它也很容易为一个垃圾邮件机器人到其用户代理报头设置为谷歌机器人。

这可能仍然是值得一试,虽然。我想说的只是尝试一下,看看结果是什么。如果你的问题,你可能要考虑其他的方式。

识别谷歌机器人的另一种方法的来的IP范围(一个或多个)它使用。我不知道机器人的用途是否定义IP范围 - 这可能是因为这是不是这样,你必须找出

更新:这似乎是通过分析它的IP验证谷歌机器人。从谷歌网站管理员中心:如何验证Googlebot

  

告诉网站管理员使用DNS来验证的情况下,逐案似乎想最好的一段路要走。我想推荐的技术是做反向DNS查找,验证该名称是否在googlebot.com域,然后DNS-> IP查找使用做了相应的转发googlebot.com名;例如:

     

主机66.249.66.1   1.66.249.66.in-addr.arpa域名指针crawl-66-249-66-1.googlebot.com。

     

主机crawl-66-249-66-1.googlebot.com   crawl-66-249-66-1.googlebot.com具有地址66.249.66.1

     

我不认为只是做反向DNS查找就足够了,因为一个欺骗可以反向DNS指向设立crawl-a-b-c-d.googlebot.com。

其他提示

$_SERVER['HTTP_USER_AGENT']参数是不安全的,人们可以假冒的,如果他们真的想要得到你的结果。你的决定是一个企业一个,基本上做到你希望降低安全性,并且可能允许人/机器人刮你的网站,或者你希望你的结果从谷歌隐藏。

一个解决方案是安全的,有一个小的地理数据库的排序条件为ASN,阻止坏的ASN博特(代理,服务器托管服务提供商为OVH),并允许一个小机器人(谷歌,必应,雅虎),GSM移动ASN像橙色,SFR沃达丰... 只是一个想法:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top