这个复选框是如何工作的?我如何使用它?
我最近注册了oneplusone网站https://account.oneplus.net/sign-up,并注意到此复选框recaptcha
它是如何工作的,以及如何在我的网站上使用它? 比那些神秘的文字/数字好得多:)
recaptcha网站没有提及任何新的recaptcha方法... https://www.google.com/recaptcha/intro/index.html
这是reCAPTCHA的beta API。 我从他们的JS API的源头收集它:https://www.google.com/recaptcha/api.js引用“API2”。 我也发现了这个:http://jaswsinc.com/recaptcha-ads/显然他们做了一个“无CAPTCHA reCAPTCHA”的受邀测试版,所以......你可能无法使它工作您的网站,但。 我找不到任何关于选择测试版的信息,但是如果您搜索“No CAPTCHA reCAPTCHA beta”,您可以看到许多人提到从Google获取电子邮件以供他们加入。
如果你找到一个地方进入测试版,请分享! 否则,它看起来像在2015年公开发布...
本条目不回答原始问题,但它有助于实施类似的解决方案。 正如@IanM所说,复选框recaptcha处于测试阶段,无法在没有邀请的情况下使用。
重要编辑 Google推出了新的reCAPTCHA
这是一个基于JavaScript的CAPTCHA。
由于大多数垃圾邮件不执行JavaScript,并且无法识别显示的文本与DOM之间的相关性或所需的操作,因此无法单击该复选框。
请注意,根本没有复选框,它只是一个带有CSS样式的div元素。 Spambots正在尝试填写表单输入元素,但CAPTCHA中没有任何输入。 复选标记只是另一个div(css类)。
当您单击该框时,ajax请求会通知服务器单击了div,并且服务器将此信息存储在临时存储中(标记该令牌:此令牌由人员激活)。 提交表单时,隐藏字段会发送已激活的令牌,然后当服务器验证表单信息时,它会识别该令牌已激活。 如果令牌未被激活,表单将失效。
要点中的步骤:
<input>
元素,可能使用<div>
)并将之前生成的标识符添加到它(可以使用html5 data-*
属性) in use
。 (显示结果 - 标识符正确/不正确 - 给用户) in use
状态。 您可以将标识符绑定到用户的会话,IP地址,和/或您可以使用时间限制来提高安全性。
注意这种验证码只适用于启用JavaScript的情况!
注意 (编辑1)正如@crazypotato所述,有一些自动化工具可以执行JavaScript,这些工具也能够发送正确的AJAX请求,并在复选框div上触发Click事件。
注意 (编辑2)请注意,写入一个网站或打破一种类型的验证码的脚本迟早会获得。 没有最终的保护,你只能让机器人(或他们的开发人员)更努力地工作。
注意 (编辑3)本答案中的步骤和描述仅包含有关此类验证码的一些基本信息,您必须添加额外的验证和安全措施以使其更加安全。 例如,Google noCaptcha在3“div点击”后系统地启动标准reCaptcha。
这里是我的代码在PHP中运行时没有问题:
客户端:
<div class="g-recaptcha" data-sitekey="PUBLIC_KEY"></div>
服务器端:
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
$privatekey = "SECRET_KEY";
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $privatekey,
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']
);
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$response = curl_exec($ch);
curl_close($ch);
}
$jsonResponse = json_decode($response);
if ($jsonResponse->success == "true")
doSomething();
else
doSomeOtherThing();
:)
链接地址: http://www.djcxy.com/p/21631.html上一篇: How does this checkbox recaptcha work and how can I use it?