这是我的 ASP.NET 表单。我想通过服务器端验证向它添加不可见的recaptcha。有人可以帮忙吗?
我可以进行客户端验证,但它不使用密钥。我的另一个问题是我们是否需要隐藏密钥的密钥?
请参阅我用于 google recaptcha 的服务器端代码,但它不适用于 Invisible recaptcha。我收到此错误: - reCAPTCHA 错误:缺少输入响应:无效的 Recaptcha
<div id="ContactFormDiv" runat="server">
<div class="form-row form-required">
<asp:Label ID="YourNameLabel" runat="server" AssociatedControlID="YourNameTextBox"> Your Name:</asp:Label>
<asp:TextBox ID="YourNameTextBox" runat="server" CssClass="form300" MaxLength="150"></asp:TextBox>
</div>
<div class="form-row form-required">
<div id='recaptcha' class="g-recaptcha"
data-sitekey="site key"
data-callback="onSubmit"
data-size="invisible">
</div>
</div>
<div class="form-row-buttons">
<asp:Button ID="SendMessageButton" ClientIDMode="Static" runat="server" Text="Send Message" CssClass="buttonPositive"
CausesValidation="True" OnClick="SendMessageButton_Click" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Javascript代码
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)
服务器端代码
public class MyObject
{
public string success { get; set; }
}
public static string …Run Code Online (Sandbox Code Playgroud) 发现了一个问题,当用户在 IE 中点击刷新时,Google recaptcha(invisible 或 v2)将无限期地坐下并旋转。从监控流量来看,当有人点击复选框时,它似乎永远不会向 Google 发出 API 调用以获取重新验证码。
使用 recaptchaV2 重现的步骤:
笔记:
grecaptcha.reset()没有运气下面是我用来隔离问题的代码。我使用 npm install http-server –g 和 http-server 来提供文件。
<!doctype html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes">
<script src="https://www.google.com/recaptcha/api.js?onload=onload&render=explicit" async defer></script>
</head>
<body>
<div id="gr123"></div>
<script>
window.hasLoaded = false;
window.onload = function() …Run Code Online (Sandbox Code Playgroud) 我已经在我们的网站上实现了google隐形recaptcha,验证码工作正常,但是当recaptcha弹出窗口变得可见并且我点击弹出窗口的父窗口(不在challence弹出窗口中)时,弹出窗口消失并且注册帐户程序锁住了.
我找不到钩子函数来通知我的验证码已经消失了!
任何人?谢谢
在我的网页中,我通过调用函数来验证基于 Invisible Recaptcha 的表单grecaptcha.execute()。通常这种情况对于用户来说是不可见的;他们看到的只是grecaptcha验证完成后触发的表单提交。
有时,会触发不那么隐形的验证码行为(例如,如果用户行为可疑),并向用户显示他们必须解决的常规验证码。当发生这种情况时,我想以编程方式检测它。
是否可以以编程方式发现在调用后是否向用户显示验证码grecaptcha.execute()?
到目前为止,我已经尝试使用MutationEvents和来观察 DOM MutationObservers。不幸的是,所有有趣的事情都发生在 an 内部iframe,似乎无法判断是否显示了完整的验证码。
我不想测量调用grecaptcha我给它的回调需要多长时间,因为那是不可靠的(例如,缓慢的移动连接会扭曲结果)。
标记:
<form id="form" method="post" action="/form">
Name: (required) <input id="name" name="name">
<div id="g-recaptcha-div"
class="g-recaptcha"
data-sitekey="keeeey"
data-callback="onRecaptchaDone"
data-size="invisible"></div>
<button id="thebutton">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
代码:
function onSubmit(event) {
event.preventDefault();
grecaptcha.reset();
grecaptcha.execute();
}
function onRecaptchaDone(token) {
form.submit();
}
window.onload = function() {
form.onsubmit = onSubmit;
}
Run Code Online (Sandbox Code Playgroud) 我可以使用新的隐形Recaptcha,但是将徽章放在左下角或右下角。您可以使用“ data-badge ='inline'”覆盖它,并将其拉入表单。Google对于如何实际移动它非常含糊。您无法将其隐藏,因为Google将不再验证您的表单。o
问题是我似乎无法将其移动到页面上的其他任何地方。我想将其移动到我创建的div内页面的底部。有人成功做到了吗?我尝试了appendTo,但这不起作用。
$('.grecaptcha-badge').appendTo("#g-badge-newlocation");
Run Code Online (Sandbox Code Playgroud)
任何帮助都很好!!!
谢谢。
我正在使用recaptcha gem.Rails 5.2.
我有以下表格:
= simple_form_for @quote_request_form, url: quote_requests_path, html: {id: "invisible-recaptcha-form"} do |f|
.form-group
= f.input :name, label: false, placeholder: 'First and Last Name',
.form-group.actions.mt-5
button.btn.btn-primary.btn-lg.btn-block#submit-btn Submit
= invisible_recaptcha_tags ui: :invisible, callback: 'submitInvisibleRecaptchaForm'
Run Code Online (Sandbox Code Playgroud)
我为表单添加了以下javascript:
javascript:
document.getElementById('submit-btn').addEventListener('click', function (e) {
e.preventDefault();
grecaptcha.execute();
});
var submitInvisibleRecaptchaForm = function () {
document.getElementById("invisible-recaptcha-form").submit();
};
Run Code Online (Sandbox Code Playgroud)
我检查控制器中recaptcha的值如下:
if verify_recaptcha(model: @quote_request_form) && @quote_request_form.save
redirect_to quote_confirm_path, notice: "Your quotation request is being processed"
else
render :new
end
Run Code Online (Sandbox Code Playgroud)
只要我使用e.preventDefault(),它就可以工作; 线.如果我删除这一行,我会在recaptcha中失败,我可以在参数中看到recaptcha attriburte正在发送空白数据.
我不明白为什么我需要它,因为没有文档指定它.所以我做错了什么,但我无法弄清楚.
任何人都可以看到我如何解决这个问题?
我们在使用 IE11 的网站中遇到了 recaptca v2(不可见)问题。这似乎是 recaptcha 本身的错误,因为我们最近没有发布任何新版本。
我们不能公开通知我们的网站,所以我会尽力解释到底发生了什么。
第一次打开页面后,就可以了。
但是如果我们只刷新页面一次(F5),错误就会出现在控制台日志中(F12)。
SCRIPT5005:Cadeia esperada
recaptcha__pt_br.js (11,465)
SCRIPT5005:Cadeia esperada
recaptcha__pt_br.js (2,137)
如果我们点击“SCRIPT5005”,则会打开以下页面(它是葡萄牙语,我找不到英文版) https://docs.microsoft.com/pt-br/previous-versions/86wk0127(v=vs .94)
我们已经尝试更改 IE 上的每个配置(兼容性视图、将浏览器重置为默认值、安全区域),但结果始终相同。
浏览器没有问题:
铬 - 76.0.3809.132 - 64 位
Firefox - 68.0.2 - 64 位
微软边缘 44.17763.1.0
有人可以帮忙吗?
参考
Google 提供了一种保护您的本机 Android 应用程序免受恶意流量侵害的好方法:SafetyNet reCAPTCHA API
这样您就可以实现一个隐形验证码,只需 0 次额外点击。检查以下短视频演示实现:https://www.androidhive.info/2018/04/android-recaptcha-safetynet
不幸的是,SafetyNet reCAPTCHA API 仅适用于 Android。我找不到任何类似的原生 iOS 方法。我只能找到以下内容:https://github.com/fjcaetano/ReCaptcha 这是一个很好的方法,但缺乏 0-clicks 功能。我不希望我的用户选择一些道路或汽车图片。
那么你知道iOS有没有可能实现0次点击隐形reCaptcha?
感谢您的支持!
嗨,我在React JS应用程序中使用Firebase 的隐形 reCaptcha进行电话号码身份验证。根据Firebase的文档,您需要提供处理登录表单提交的按钮的id(例如)。sign-in-button
一旦用户点击该按钮,Firebase 的隐形 reCaptcha 就会启动并检查它是否已被用户解决。如果 reCaptcha 已解决,则将触发callback 提供者new firebase.auth.RecaptchaVerifier('...', {})。在那个回调中,我们应该向用户的电话号码发送一个 OTP代码。
发生的事情是callback除非在提交登录表单时未发送 OTP,否则不会被触发,这是没有意义的,因为发送 OTP 需要由隐形 reCaptcha 提供的回调处理,而不是通过使用 onSubmit 发送 OTP的形式。
"firebase": "^7.15.1",
import React, { Component } from 'react';
import firebase from 'firebase/app';
import 'firebase/auth';
firebase.initializeApp({
apiKey: 'xxx',
authDomain: 'xxx',
databaseURL: …Run Code Online (Sandbox Code Playgroud) javascript firebase reactjs firebase-authentication invisible-recaptcha
问题总结:
Google V2 ReCapcha 取消了所有页面速度调整工作,这些工作只是为了加载小“不可见”[不是真正不可见] iFrames
情况:
得到了一个很棒的 SEM 登陆页面,构建良好,压缩,缩小的 JS/css,CDN,最小字体快如闪电,99% A 页面速度得分...
但是一旦JS层被激活
Google V2 Invisible ReCapcha 尝试处理页面上的 3 个 FORM 元素(潜在客户表单、时事通讯和基于 Twilio 的 SMS“点击通话”表单)速度得分受到影响(并且不是可接受的程度,严重程度)
多年来一直是一个问题,一直都知道它,但想现在也许有解决方案吗?
所有表单都是 100% AJAX。使用其他东西也可以,也许是 V3?异步延迟,尝试使用延迟和不延迟 - 仅从 Google 传递 JS 文件的加载时间似乎“不合理”...(尝试抓取 JS 文件并在本地提供它们,无论如何都是非正统且“不起作用”)
接受建议。
javascript performance pagespeed invisible-recaptcha grecaptcha
recaptcha ×6
javascript ×4
.net ×1
asp.net ×1
c# ×1
firebase ×1
grecaptcha ×1
ios ×1
pagespeed ×1
performance ×1
popup ×1
reactjs ×1
recaptcha-v3 ×1
ruby ×1