标签: recaptcha

是否有任何替代recaptcha.net,以阻止垃圾邮件?

我公司的成员比我自己更高,拒绝在他的网站上使用recaptcha.net来阻止公共表单上的垃圾邮件.他认为,任何来我们网站的人都很难输入他们的信息,因为图灵测试"非常难以阅读".

是否有使用此方法的替代方法? 那不包含这些难以阅读的图像吗?

(好吧愚蠢的问题......如果由我决定,我们会使用recaptcha,因为地球上的其他人都会这样做......但我只是觉得我还是要检查一下.)

此外,使用由Javascript设置的隐藏字段,以后在服务器上检查真的是一个很好的方法来解决垃圾邮件?

我自己并不真的买它是...因为有各种各样的Javascript引擎不能在浏览器中运行但可以运行Javascript(Rhino等...),这很容易被用来解决JS问题/ Serverside反垃圾邮件方法.

usability captcha spam-prevention recaptcha

14
推荐指数
2
解决办法
8688
查看次数

使用SDK在iPhone App上进行reCaptcha

有没有人在他们的iPhone应用程序上使用reCaptcha?我想弄清楚如何将它嵌入我的应用程序...

iphone sdk recaptcha

14
推荐指数
1
解决办法
7713
查看次数

覆盖google recaptcha css以使其响应

我在一个网站(不是Wordpress网站或Joomla)中安装了Google Recaptcha所以不要提供任何WP插件或Joomla扩展:)

我的问题是,该网站是响应式的,而recaptcha则不是.当我使用Firebug查找其样式时,我意识到不仅Google提供的库不包含css文件,而且我无法在custom-styles.css文件中覆盖它们,因为Google非常周到地应用了!important选择器hack在他们的CSS中一切,但我甚至尝试对它进行分类,以便我可以做出违规并希望覆盖Google的样式但是插件不起作用:(

有任何想法吗?

ps我也没有使用不同的重新验证码.抱歉.我敢肯定这里有一些收藏极客;)

这是HTML.这就是recaptcha.php从服务器呈现的内容.这不是我在实际PHP页面中所拥有的...(没有CSS,这是主要问题)

<div id="recaptcha_widget_div" style="" class=" recaptcha_nothad_incorrect_sol recaptcha_isnot_showing_audio"><div id="recaptcha_area"><table id="recaptcha_table" class="recaptchatable recaptcha_theme_red"> 
  <tbody>
     <tr> 
        <td colspan="6" class="recaptcha_r1_c1"></td> 
     </tr> 
     <tr> 
        <td class="recaptcha_r2_c1"></td> 
        <td colspan="4" class="recaptcha_image_cell">
            <center><div id="recaptcha_image" style="width: 300px; height: 57px;">
                  <img id="recaptcha_challenge_image" alt="reCAPTCHA challenge image" height="57" width="300" src="http://www.google.com/recaptcha/api/image?c=03AHJ_VutTaFjCI-gV3f3W2_M6gix7arVpF-9EOz-f773U5LmDrl33mKCn9wMXYGe0t8-xy-1HD0ysHzOI_NYyOtxOxD_a4Jj5G5h4bDMalKBQ5PDJaaE6ur8K44ilzimisHHYX6xZJ4y9xeuP6lT4vQa59-nNPju3VrlolnYgbM6oKgD7el1Rr9cpbRojjc_2zFraHkTjxyUU"></div>
            </center>
         </td> 
         <td class="recaptcha_r2_c2"></td> 
      </tr> 
      <tr> 
         <td rowspan="6" class="recaptcha_r3_c1"></td> 
         <td colspan="4" class="recaptcha_r3_c2"></td> 
         <td rowspan="6" class="recaptcha_r3_c3"></td> 
      </tr> 
      <tr> 
         <td rowspan="3" class="recaptcha_r4_c1" height="49"> 
              <div class="recaptcha_input_area"> 
                  <span id="recaptcha_challenge_field_holder" style="display: none;">                      
                      <input type="hidden" name="recaptcha_challenge_field" id="recaptcha_challenge_field" value="03AHJ_VutTaFjCI-gV3f3W2_M6gix7arVpF-9EOz-f773U5LmDrl33mKCn9wMXYGe0t8-xy-1HD0ysHzOI_NYyOtxOxD_a4Jj5G5h4bDMalKBQ5PDJaaE6ur8K44ilzimisHHYX6xZJ4y9xeuP6lT4vQa59-nNPju3VrlolnYgbM6oKgD7el1Rr9cpbRojjc_2zFraHkTjxyUU"></span>
                      <input name="recaptcha_response_field" …
Run Code Online (Sandbox Code Playgroud)

css recaptcha responsive-design

14
推荐指数
2
解决办法
5万
查看次数

苦苦挣扎与recaptcha v2和表单提交

https://developers.google.com/recaptcha/docs/verify

if(isset($_POST['submit'])){
$recaptchaResponse = $_POST['g-recaptcha-response'];
$secretKey = 'MYKEY';
$request = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$recaptchaResponse);

    if(!strstr($request,"false")){
echo '<div class="notification error clearfix"><p><strong>Attention!</strong> You didnt complete the captcha.</p></div>';
exit();
Run Code Online (Sandbox Code Playgroud)

然后其余的php文件邮寄表单,但即使你没有完成recaptcha它也只是发送.基本上,如果JSON返回false,我希望它不会发送并显示错误

如果它有帮助,这里也是页面的形式,我也可能在那里做错了...

<form method="POST" action="post.php" name="contactform" id="contactform" class="container">

            <fieldset>
                <div class="form-field grid-half">
                    <label for="name">Name</label>
                    <span><input type="text" name="name" id="name" /></span>
                </div>
                <div class="form-field grid-half">
                    <label for="email">Email</label>
                    <span><input type="email" name="email" id="email" /></span>
                </div>
                <div class="form-field grid-full">
                    <label for="message">Message</label>
                    <span><textarea name="message" id="message"></textarea></span>
                </div>                  
                <div class="form-field grid-full">
                        <div class="g-recaptcha" data-sitekey="MYKEY"></div>
                </div>
            </fieldset>
            <div class="form-click grid-full">
                <span><input type="submit" name="submit" value="Submit" id="submit" /></span> …
Run Code Online (Sandbox Code Playgroud)

php forms json recaptcha

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

谷歌REcaptcha没有显示

我有以下内容 <body>

<div class="g-recaptcha" data-sitekey="some-key (original is right)">
Run Code Online (Sandbox Code Playgroud)

这是我的 <head>

<script src="//www.google.com/recaptcha/api.js"></script>
Run Code Online (Sandbox Code Playgroud)

但无论是在firefox还是chrome上都没有显示......这是一个已知的问题吗?

javascript recaptcha

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

隐形谷歌Recaptcha和ajax形式

我有一个ajax形式:

  <form id="my_form">
    <input type="text" id="field1" />
    <input type="submit" value="submit" />
  </form>
Run Code Online (Sandbox Code Playgroud)

和js代码:

document.getElementById("my_form").onsubmit = function(e) {
  e.preventDefault();

  var xhr = new XMLHttpRequest();
  //.............. send request to a server
Run Code Online (Sandbox Code Playgroud)

在文档中,它假定表单是普通表单,而不是ajax.我究竟应该如何将隐形reCaptcha整合到我的ajax表单中?例如:

  <form id="my_form">
    <input type="text" id="field1" />
    <div class="g-recaptcha" data-sitekey="12345" data-callback="????></div>
    <input type="submit" value="submit" />
  </form>
Run Code Online (Sandbox Code Playgroud)

而且,特别是,我应该为"数据回调"处理程序指定什么?同样,在文档中,数据回调提交了一个表单,但是一个普通表单,而我的是ajax.我需要"数据回调"吗?我不应该在我的处理程序中调用recaptcha吗?怎么样?

有"渲染","getResponse"和"执行".我应该使用哪一个?从文档中不清楚.

html javascript forms ajax recaptcha

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

要求用户在表单提交前单击google的新重新访问

我在我的表单(HTML5)中使用google的新recaptcha:https: //www.google.com/recaptcha

在表单提交之前,有没有办法在需要时检查并标记recaptcha?我想在客户端而不是服务器端验证这一点.这样,我不必回到表单并警告用户不要为验证码输入任何内容.

我可以用来检查用户是否在recaptcha中输入任何内容的任何javascript?

javascript php forms recaptcha

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

带内容安全策略的reCAPTCHA

我正在尝试使reCAPTCHA与严格的内容安全策略一起工作.这是我的基本版本,它可以正常工作:

HTML

<script src='//www.google.com/recaptcha/api.js' async defer></script>
Run Code Online (Sandbox Code Playgroud)

HTTP标头

Content-Security-Policy: default-src 'self'; script-src 'self' www.google.com www.gstatic.com; style-src 'self' https: 'unsafe-inline'; frame-src www.google.com;
Run Code Online (Sandbox Code Playgroud)

但是,我想摆脱unsafe-inlinestyle-src部分.在文档中,写道:

我们建议使用CSP3中记录的基于随机数的方法.确保将你的随机数包含在reCAPTCHA api.js脚本标记中,我们将处理其余部分.

但是我不能让它工作......这就是我尝试过的:

HTML

<script src='//www.google.com/recaptcha/api.js' nonce="{NONCE}" async defer></script>
Run Code Online (Sandbox Code Playgroud)

HTTP标头

Content-Security-Policy: default-src 'self'; script-src 'self' https: 'nonce-{NONCE}'; style-src 'self' 'nonce-{NONCE}'; child-src www.google.com;
Run Code Online (Sandbox Code Playgroud)

这是我在Chrome 53上遇到的错误:

拒绝应用内联样式,因为它违反了以下内容安全策略指令:"style-src'self'https:'nonce- {NONCE}'".可以使用'unsafe-inline'关键字,散列('sha256-MammJ3J + TGIHdHxYsGLjD6DzRU0ZmxXKZ2DvTePAF0o =')或nonce('nonce -...')来启用内联执行.

我错过了什么?

recaptcha content-security-policy

13
推荐指数
2
解决办法
1万
查看次数

Vue.js google reCaptcha回调

我试图在组件中使用vue.js进行recaptcha回调.验证码本身确实有效,但不是我在data-callback属性中定义的回调.

我已经尝试了我能想到的一切,但我仍然得到ReCAPTCHA couldn't find user-provided function: dothisthat错误.

这是组件

<script>
    function dothisthat (){
            alert(312);
        }
</script>

<template>
    <div class="well main-well">
        <h4>Captcha</h4>
        <p class="small">You must complete the captcha to finish your booking.</p>
        <div id="captcha-wrapper">
            <div class="g-recaptcha" :data-sitekey="captchaKey" data-callback="dothisthat"></div>
        </div>
    </div>
</template>
<script>
     function dothisthat (){
        alert(123);
    }
    import * as filters from '../../../filters';
    import Translation from '../../../Translation';

    export default {
        name: 'Captcha',
        props: {
        },
        computed: {
            captchaKey: function() {
                return this.$store.getters.captcha;
            }
        },
        methods: {
            dothisthat: function(){ …
Run Code Online (Sandbox Code Playgroud)

javascript recaptcha vue.js

13
推荐指数
3
解决办法
9444
查看次数

Recaptcha v2在重置时会抛出错误,并且从DOM中删除其容器元素

当我显式渲染Recaptcha v2然后在从DOM中删除它之前重置它,大约40秒后我在浏览器控制台中出错.

我有一个可以用来重现问题的JSFiddle.

这是相关的代码摘录:

const recaptchaHolder = document.getElementById('...');
const recaptchaWidgetId = grecaptcha.render(recaptchaHolder, {/*...*/});
// then later
grecaptcha.reset(recaptchaWidgetId);
recaptchaHolder.parentElement.removeChild(recaptchaHolder);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

未知(承诺)超时

使用以下stacktrace(实际的堆栈跟踪可能会有所不同,因为它发生在严重缩小的代码中):

setTimeout (async)      
J           @   recaptcha__en.js:100
(anonymous) @   recaptcha__en.js:285
tb          @   recaptcha__en.js:284
mj          @   recaptcha__en.js:456
(anonymous) @   recaptcha__en.js:458
Run Code Online (Sandbox Code Playgroud)

我试图利用文档中'error-callback'参数来捕获此错误,但这没有帮助 - 错误仍未被捕获,并且不会调用此回调.

另一个观察:如果我grecaptcha.reset在从DOM中删除元素之前省略调用,则不会发生错误.但是,它可能会导致UI不一致:如果用户受到recaptcha的挑战(例如,使用图像),并且只是从DOM中删除元素而不调用grecaptcha.reset,则不会从DOM中清除挑战HTML.

我正在寻找处理上述错误或以不同方式处理recaptcha删除的方法(如果我现在做错了)

javascript recaptcha

13
推荐指数
1
解决办法
1130
查看次数