Q1 --我一直在阅读reCaptcha的文档,并查看了许多不同的论坛案例,但我完全没有使用API调用的经验--我试图在我的自定义联系人表单中添加一个captcha,但是我在验证步骤中一直在努力弄清楚如何/在哪里发送信息以进行验证,以及如何/在哪里接收它,以便我知道用户是否经过验证。
(附带问题:为什么有必要验证captcha生成的令牌?你能分辨天气吗?谜题/答案还没有解决吗?)
在结束头标签之前:
<script src='https://www.google.com/recaptcha/api.js'></script>我表格的结尾:
<div class="g-recaptcha" data-sitekey="my-site-key"></div>当我调用时,我可以看到由正确答案生成的字符串/令牌:
grecaptcha.getResponse();现在(据我理解),我必须验证这个字符串/令牌,这是我陷入困境的地方:
URL: https://www.google.com/recaptcha/api/siteverify
METHOD: POST博士:https://developers.google.com/recaptcha/docs/verify
我在jQuery和vanilla方面相对不错,但是当涉及到API调用时,我几乎没有经验,这就是为什么在文档中,我不知道如何1--形成一个/ API调用(用于验证),2-从模板文件中调用API的位置--明智地,3--如何获得响应,或者更确切地说,如何返回响应。
正如我所提到的,我使用的是Bigcommerce商店,在服务器端(或者应该在服务器端完成)中提到的几个不同领域中提到的Google reCaptcha文档。我知道我在我可以修改的模板文件中受到了很大的限制--我可以查看和修改HTML/CSS/JS文件,但是我不能访问任何PHP。
任何帮助或推动正确的方向将是非常感谢的-在这一点上,我正在寻找和尝试阅读/跟随相同的文档(谷歌和其他)和论坛案例。谢谢。
发布于 2017-08-16 12:25:39
一个接一个地回答你的问题。
客户端Captcha是讨论这里的,请检查并注意考虑到Java的功能,客户端captchas是不安全的。
发布于 2017-08-15 16:13:35
reCaptcha验证si以确保您收到的答案确实来自reCaptha服务器,用户不是机器人,它还没有成熟,并且它没有被使用过不止一次。
所有这些对于运行应用程序的服务器来说都是非常重要的,更重要的是客户端显示表单以便接受或拒绝要处理的表单。
这就是为什么必须在服务器上进行验证的原因。客户端是一个可能被欺骗的不安全环境,因此服务器无法信任它。
此外,要进行验证,您需要一个秘密api密钥。因为它是秘密的,所以不能嵌入到客户端代码中。
如果您没有对php的访问权限,或者无法添加和访问php来进行验证,我认为您无法实现reCaptcha。
编辑I
底线是不能信任客户端代码(js,在浏览器中运行的jQuery )从服务器的角度进行任何类型的验证。
例如,假设您实现了一个输入元素,让用户输入0到9之间两个随机整数之和的结果。非常简单。
在某些地方的javascript代码中有一个:
if(a + b === c){
sendFormToServer();
}else{
reject();
}任何使用浏览器开发工具的人都可以绕过"if“,直接调用sendFormToServer()。服务器无法知道这一点。
https://stackoverflow.com/questions/45696662
复制相似问题