出于测试目的是否可以强制 recaptcha v2 失败? (即假装是机器人)

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

我正在按照文档中的说明实现不可见的 reCAPTCHA:reCAPTCHA V2 文档

我已经成功地实现了它,没有任何问题。但是,我想知道的是我是否可以模拟成为一个机器人来进行测试?

有没有办法强制 reCAPTCHA 做出响应,就好像我是机器人一样?

预先感谢您的帮助。

recaptcha
9个回答
56
投票

在开发工具中,打开

Settings
,然后打开
Devices
,添加一个自定义设备,其名称和用户代理等于
Googlebot/2.1

最后,在顶部栏左侧的设备模式中,选择设备(默认为

Responsive
)。

您可以在 https://www.google.com/recaptcha/api2/demo?invisible=true

测试验证码

(这是Invisible Recaptcha的演示。您可以删除url

invisible
参数来使用验证码按钮进行测试)


29
投票

您可以使用 Chrome 插件(例如“修改标头”)并添加用户代理(例如 Googlebot/2.1 (+http://www.google.com/bot.html))。


5
投票

对于 Firefox,如果您不想安装任何附加组件,您可以轻松地手动更改用户代理:

  1. 在 URL 框中输入 about:config 并按回车键;
  2. 搜索“useragent”(一个词),只是为了检查已经存在的内容;
  3. 创建一个新字符串(右键单击窗口中的某处),标题为(即 new
    首选项)“general.useragent.override”,并带有字符串值
    “Googlebot/2.1”(或任何其他您想要测试的)。

我用 Recaptcha v3 尝试过,它确实返回了 0.1 的分数

完成测试后,不要忘记从 about:config 中删除这一行!

我在这里找到了这个方法(这是一篇Apple OS文章,但Firefox方法也适用于Windows):http://osxdaily.com/2013/01/16/change-user-agent-chrome-safari-firefox /


3
投票

是的,出于测试目的,可以强制重新验证 v2 失败。

有两种方法可以做到这一点

第一种方法:

您需要有 Firefox 浏览器,只需发出一个简单的表单请求 然后等待响应,收到响应后单击刷新按钮,Firefox 将提示一个框,显示“要显示此页面,Firefox 必须发送将重复之前执行的任何操作(例如搜索或订单确认)的信息。”然后点击“重新发送”

通过执行此操作,浏览器将发送之前的“g-recaptcha-response”密钥,这将使您的 recaptcha 失败。

第二种方式

您可以通过任何应用程序发出任何简单的 POST 请求,例如在 Linux 中,您可以使用 CURL 来发出 POST 请求。

只需确保您指定了所有提交的表单以及请求的标头,最重要的是,将一个字段名称发布为“g-recaptcha-response”,并为此字段提供任意随机值


3
投票

我发现如果您单击 reCaptcha 徽标而不是文本框,它往往会失败。

这是因为机器人检测可点击的点击框,并且由于复选框是图像,以及“我不是机器人”文本,并且机器人无法正确地将图像处理为文本,但它们可以处理可点击的点击框,这reCaptcha 告诉他们点击,只是没有告诉他们在哪里。

将鼠标光标保持在 reCaptcha 上,并尽可能远离复选框进行单击。那么你很可能会失败。 (它只会显示您必须识别图片的内容)。

图片放在那里是因为就像我说的,机器人无法处理图像并识别汽车之类的东西。


2
投票

刚刚完成Rafael的回答,接下来看如何使用插件


2
投票

所有建议的答案都不适合我。我刚刚编写了一个简单的 Node.js 脚本,它打开一个带有页面的浏览器窗口。 ReCaptcha 检测自动浏览器并显示挑战。脚本如下:

const puppeteer = require('puppeteer');

let testReCaptcha = async () => {
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();

    await page.goto('http://yourpage.com');
};

testReCaptcha();

不要忘记通过运行

npm i puppeteer
安装 puppeteer 并将
yourpage.com
更改为您的页面地址


1
投票

截至 2023 年,这个问题的新正确答案比人们想象的要简单一些。用户代理和设备模拟不再触发 Recaptcha,但为了触发验证,人们所要做的就是像机器人一样行动。

这里是隐形 Recaptcha 演示页面:https://www.google.com/recaptcha/api2/demo?invisible=true

提交该表格约 10 次,它将开始向您显示验证信息。该表格已预先填写,因此只需提交、返回、提交、返回即可。然后,您可以返回到您正在测试的网站,Google 会将您识别为需要验证的同一个人。


0
投票

如果您只想模拟在后端获得的内容,那么可以选择暂时禁用浏览器中的 JavaScript。

这会导致 reCAPTCHA 不会显示在您的网页上。然后,当您在页面上执行某些操作时,导致 POST,后端代码将不会收到

g-recaptcha-response
表单字段,并且验证码验证将失败。

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