标签: recaptcha

如何使用 Selenium 和 Python 绕过 Google CAPTCHA?

如何使用 Selenium 和 Python 绕过 Google CAPTCHA?

当我尝试抓取某些东西时,Google 会给我一个 CAPTCHA。我可以使用 Selenium Python 绕过 Google CAPTCHA 吗?

例如,它是 Google reCAPTCHA。您可以通过此链接查看此 CAPTCHA:https : //www.google.com/recaptcha/api2/demo

python selenium captcha recaptcha selenium-chromedriver

32
推荐指数
2
解决办法
9万
查看次数

如何在 Nuxt 2 或 3 中使用 .env 变量?

我的项目根目录中有 .env 文件,在我的 nuxt 配置中,我使用变量来配置 ReCaptcha,如下所示:

import dotenv from 'dotenv'
dotenv.config()

export default {
    modules: [
        ['@nuxtjs/recaptcha', {
          siteKey: process.env.RECAPTCHA_SITE_KEY,
          version: 3,
          size: 'compact'
        }],
    ]
}
Run Code Online (Sandbox Code Playgroud)

在 .env 中像这样:

RECAPTCHA_SITE_KEY=6L....
Run Code Online (Sandbox Code Playgroud)

但应用程序总是失败并出现控制台日志错误:

ReCaptcha 错误:未提供密钥

当我像这样直接硬编码 ReCaptcha 密钥时:siteKey: 6L....应用程序开始工作,所以我猜问题在于读取 nuxt.config 中的 .env props

你知道如何解决它吗?

编辑:我尝试通过@kissu推荐和我在这里找到的示例更新我的nuxt.config: https: //www.npmjs.com/package/@nuxtjs/recaptcha

所以有新的 nuxt.config 也不起作用:

export default {
    modules: [
       '@nuxtjs/recaptcha',
    ],
    publicRuntimeConfig: {
       recaptcha: {
         siteKey: process.env.RECAPTCHA_SITE_KEY,
         version: 3,
         size: 'compact'
       }
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript recaptcha vue.js vuejs2 nuxt.js

32
推荐指数
3
解决办法
7万
查看次数

如何在用户提交无效输入后重新加载google recaptcha小部件

我有一个注册表单,上面有新的google recaptcha小部件.当用户提交信息时,我们使用javascript检查验证并将问题返回到页面(例如:"请使用有效的电话号码").但是,由于页面没有重新加载,当用户输入正确的信息并再次提交时(无需再次进行重新记录)... recaptcha不再有效,他们无法在不重新加载页面的情况下提交.

有一个很好的解决方案吗?我可以以某种方式重新加载小部件吗?我试过grecaptcha.render,但它并没有真正做任何事情.

编辑:

当我尝试再次渲染窗口小部件时,它说"占位符元素必须为空"

我试着清空似乎有用的元素($('.g-recaptcha').empty();)然后渲染但它仍然抛出相同的错误.

javascript ruby-on-rails recaptcha

31
推荐指数
5
解决办法
7万
查看次数

Google reCAPTCHA:如何在服务器端获取用户响应和验证

我正在做一个Java(JSP + Servlet)Web应用程序(我知道这个问题与技术无关).我希望使用最新的Goolge reCAPTCHA服务.

我正在玩这里找到的Goolge reCAPTCHA示例:

https://developers.google.com/recaptcha/docs/display#config

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="my_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我能够看到显示的recaptcha图像如下:

在此输入图像描述

当我检查"我不是机器人"时,我得到以下信息:

在此输入图像描述

如您所见,有一个验证按钮,根据我的测试,用户响应会发送给Google进行验证.

如何获取用户响应,以便我可以在自己的后端代码中验证用户响应(如Google建议的https://developers.google.com/recaptcha/docs/verify).

g-recaptcha-response POST parameter when the user submits the form on your site
Run Code Online (Sandbox Code Playgroud)

在服务器端,我可以通过点击"提交"按钮,仅在首先使用Google成功验证用户时才从参数"g-recaptcha-response"获取用户输入.否则,"g-recaptcha-response"在服务器端是空白的.这意味着只有在客户端验证成功后才能进行服务器端验证.如果是这样,那么在服务器端进行另一次验证有什么意义,这是Google reCAPTHA提供的选项?

我错过了什么吗?

javascript java recaptcha

29
推荐指数
2
解决办法
10万
查看次数

从Google实施新的Invisible reCaptcha

我正在建立一个PHP网站,我想在登录表单上放置验证码.我选择了Google的新Invisible reCaptcha,但是我在实现它时遇到了麻烦(HTML部分,PHP正在运行).

我现在为"正常"reCaptcha获得的代码如下(根据Google reCaptcha说明,这有效):

<form action=test.php method="POST">
   <input type="text" name="email" placeholder="Email">
   <input type="password" name="password" placeholder="Password">

   <!-- <Google reCaptcha> -->
   <div class="g-recaptcha" data-sitekey="<sitekey>"></div>
   <!-- </Google reCaptcha> -->

   <input type="submit" name="login" class="loginmodal-submit" value="Login">
</form>
Run Code Online (Sandbox Code Playgroud)

我注册时在确认电子邮件中发送了一些说明(大约需要24小时才能得到确认).这说明如下:

隐形reCAPTCHA集成

  1. 如果您尚未将网站与reCAPTCHA v2集成,请按照我们的开发者指南了解实施细节.

  2. 请确保您的网站密钥已被列入Inelible reCAPTCHA白名单.

  3. 要启用Invisible reCAPTCHA,而不是将参数放在div中,您可以将它们直接添加到html按钮.

    3A.数据回调="".这就像复选框验证码一样,但是对于隐形验证是必需的.

    3B.data-badge:这允许您重新定位reCAPTCHA徽章(即徽标和"受reCAPTCHA保护"文本).有效选项为'bottomright'(默认值),'bottomleft'或'inline',将徽章直接放在按钮上方.如果您将徽章设为内联,则可以直接控制徽章的CSS.

  4. 验证用户的响应没有变化.

我遇到的问题是HTML实现(因此我需要第3步的帮助.1,2和4对我有用).其余的我使用正常的reCaptcha并根据说明,它应该是相同的事情.我不明白数据回调和数据徽章是什么以及它是如何工作的.如何使用我的表单设置实现隐形reCaptcha的代码示例将是很棒的!

html javascript recaptcha

29
推荐指数
3
解决办法
5万
查看次数

如何验证Google Recaptcha V3响应

如何在客户端和服务器端(php)中集成Google reCAPTCHA版本3.以下代码用于显示recaptcha,但它不能正常工作.如何进行这种集成.

<html>

<head>
  <script src='https://www.google.com/recaptcha/api.js?render=XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'></script>
</head>

<body>
  <script>
    grecaptcha.ready(function() {
      grecaptcha.execute('XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', {
        action: 'action_name'
      });
    });
  </script>

  <form action="verify.php" method="post">
    <input type="text" name="name" placeholder="Your name" required>
    <input type="email" name="email" placeholder="Your email address" required>
    <textarea name="message" placeholder="Type your message here...." required></textarea>

    <input type="submit" name="submit" value="SUBMIT">

  </form>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

Verify.php

<?php

    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {
        //your site secret key
        $secret = 'XXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
        //get verify response data
        $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
        if($responseData->success):

             print_r("Working Fine"); exit;
        else:
             print_r("No valid Key"); exit; …
Run Code Online (Sandbox Code Playgroud)

php recaptcha invisible-recaptcha

29
推荐指数
3
解决办法
4万
查看次数

Google Recaptcha v3示例演示

到目前为止,我正在使用Google Recaptcha v2,但现在我想使用最新版本(v3)更新我的WebApp.

是否有人可以为基本表单添加一个完全正常工作的Google Recaptcha v3示例,因为我找不到任何有用的演示文稿?

我真的很感激.

非常感谢你.

PS:我在服务器端使用Java Servlets,但是如果你使用php或其他什么解释也没关系.

servlets recaptcha recaptcha-v3

29
推荐指数
3
解决办法
6万
查看次数

谷歌reCaptcha重置不起作用

我想通过AJAX提交表单时重置Google reCaptcha小部件,并发送一些输入错误或表单.我在同一页面上使用多个小部件,因此我明确地呈现这些小部件.

我的HTML代码:

<div class="g-recaptcha" id="recaptcha-1"></div>
<div class="g-recaptcha" id="recaptcha-2"></div>
...
<div class="g-recaptcha" id="recaptcha-20"></div>
Run Code Online (Sandbox Code Playgroud)

加载小部件

<script src="https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit&hl=en" async defer></script>
<script>
    var reCaptchaCallback = function() {
        var elements = document.getElementsByClassName('g-recaptcha');
        for (var i = 0; i < elements.length; i++) {
            var id = elements[i].getAttribute('id');
            grecaptcha.render(id, {
                'sitekey' : 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
            });
        }
    };
</script>
Run Code Online (Sandbox Code Playgroud)

提交表格后:

var id = $('.g-recaptcha', form).attr('id');
grecaptcha.reset(id);
Run Code Online (Sandbox Code Playgroud)

表单是提交表单的实例.

当表格填写正确时,一切正常.但reCaptcha不会重置或重新加载.尝试这个grecaptcha.reset()但没有结果.

任何的想法?

javascript ajax reload reset recaptcha

26
推荐指数
1
解决办法
4万
查看次数

在reCAPTCHA之前的HTML5表单验证

我集成了新的隐藏reCAPTCHA(v2)框架,该框架默认使用click提交按钮的事件验证用户.但是在内置HTML5表单验证之前触发此事件.我正在寻找一种方法,使其按预期的顺序进行:首先是表单验证,然后是reCAPTCHA.

html5 recaptcha html5-validation

26
推荐指数
3
解决办法
2万
查看次数

如何在保留reCaptcha脚本的同时使用jQuery/AJAX加载reCaptcha表单?

我使用JQuery/AJAX将我的联系表单加载到我的页面中.

联系表单包含reCaptcha脚本.

不幸的是,JQuery在将脚本标签插入我的页面之前删除了它们.需要这些脚本标记,因为它们输出验证码.现在我加载的表单没有验证码.

ajax jquery cakephp recaptcha

25
推荐指数
2
解决办法
3万
查看次数