2016-07-29 87 views
1

我想使用Google ReCaptcha,但我也不想触摸服务器端或后端代码。Google ReCaptcha前端解决方案

我使用ASP.Net MVC,但我也不想使用nuget或任何库中的任何包。解决方案必须仅限于前端。所有JavaScript/jQuery解决方案都被接受。

我还注意到我的表格正在收集数据并将其作为电子邮件发送到指定的邮箱。我也没有在这个过程中使用任何第三方库。它只能通过ASP.Net MVC手动编码。

+1

使用java脚本,grecaptcha.getResponse() –

+2

解决方案的重要部分,如Google的Recaptcha是与服务器端的通信。这是因为前端代码很容易被读取,破解甚至彻底取代。假设你有'captcha_challenge()',如果用户设法解决验证码则返回'true'。现在我进入源代码并用函数替换你的函数captcha_challenge(){return true; }'。我再次点击该按钮,我就进来了。在前端只实现像验证码或密码加密这样的东西实在没有意义。你*需要*后端才能安全地工作。 –

回答

0

感谢Ivo Coumans的详细解释。我得到它的工作,但显而易见,这是不安全的。 Rinto Antony在这里给了我一个想法,就是我所做的。

我打电话了谷歌的reCAPTCHA API来领导我的网站的部分并添加创建验证码股利:

<div class="g-recaptcha" data-sitekey="api_key" data-callback="enableBtn"></div> 

由于数据回调触发enableBtn功能,有可能采取行动,如果它返回真实。所以我添加了一个禁用的提交按钮到我的表单。

<input type="submit" value="Gönder" id="button1" disabled> 

然后我添加了一个简单的JavaScript来启用它:

<script type="text/javascript"> 
    function enableBtn() { 
    document.getElementById("button1").disabled = false; 
} 
</script> 

我知道这可能很容易被绕过,而不是一个真正的解决方案,但它工作。我愿意接受任何可以使这一点变得更好的想法。

0

除非您使用CMS,否则您必须在后端放置一些代码,因为您将使用reCAPTCHA发出POST请求。

我强烈推荐wordpress,因为它只是下载插件,然后只是复制密钥并粘贴它们。