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

问题描述 投票:0回答:2

我的网站有数据库查找;填写验证码后,您将获得 5 分钟的查找时间。还有一些自定义代码来检测任何自动化脚本。我这样做是因为我不希望有人对我的网站进行数据挖掘。

问题是 Google 在抓取我的网站时看不到查找结果。如果有人正在搜索查找结果中存在的字符串,我希望他们通过谷歌搜索找到此页面。

对我来说显而易见的解决方案是使用 PHP 变量

$_SERVER['HTTP_USER_AGENT']
绕过 Google 机器人的验证码和自定义安全代码。我的问题是这是否明智。

人们可以使用 Google 的缓存来查看查找结果,而无需填写验证码,但是 Google 自己的脚本检测方法会阻止他们对这些页面进行数据挖掘吗?

或者人们是否可以通过某种方式让

$_SERVER['HTTP_USER_AGENT']
显示为 Google 来绕过安全措施?

php captcha googlebot
2个回答
4
投票

或者人们是否可以通过某种方式让 $_SERVER['HTTP_USER_AGENT'] 显示为 Google 来绕过安全措施?

当然。用户代理很容易伪造。参见例如Firefox 的用户代理切换器。垃圾邮件机器人也很容易将其用户代理标头设置为 Google 机器人。

不过,它可能仍然值得一试。我想说的是,尝试一下,看看结果如何。如果遇到问题,您可能需要考虑其他方法。

识别 Google bot 的另一种方法可能是它使用的 IP 范围。我不知道机器人是否使用定义的 IP 范围 - 情况可能并非如此,您必须找出答案。

更新:似乎可以通过分析其IP来验证Google Bot。来自 Google 网站管理员中心:如何验证 Googlebot

告诉网站管理员根据具体情况使用 DNS 进行验证似乎是最好的方法。我认为推荐的技术是进行反向 DNS 查找,验证该名称是否在 googlebot.com 域中,然后使用该 googlebot.com 名称进行相应的正向 DNS->IP 查找;例如:

主机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。


1
投票

$_SERVER['HTTP_USER_AGENT']

参数不安全,如果人们真的想得到你的结果,他们可以伪造它。您的决定是一项商业决定,基本上您是否希望降低安全性并可能允许人们/机器人抓取您的网站,或者您是否希望对谷歌隐藏您的结果。

© www.soinside.com 2019 - 2024. All rights reserved.