我试图将下载链接插入带有reCaptcha的表单中(按照Google的说明),但是即使您没有通过验证码挑战,“提交”按钮也会打开该链接。
代码很简单:
<head>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<form action="download link">
<input type="submit" value="download">
<div class="g-recaptcha" data-sitekey="xxx"></div>
</form>
</body>
有人知道为什么这行不通吗?谢谢!
我认为您对Google reCaptcha的工作方式有些困惑-它不会阻止POST(用户可以轻松绕过这样的事情),它用于允许服务器端代码检查用户是否不是机器人。
这意味着您还必须在服务器端有一些东西来检查正在提交的内容。您不能只在客户端这样做。(尽管看起来Google正在进行客户端的所有操作,但reCaptcha按钮实际上位于另一台服务器上的iframe中。)
例如。在此处查看Google的演示:https : //www.google.com/recaptcha/api2/demo
请注意,当您单击“提交”时,它仍会将数据回传到服务器上-服务器会响应说您是否是人类。
正如Google的文档所述:
当您的用户提交集成reCAPTCHA的表单时,您将获得一个名为“ g-recaptcha-response”的字符串作为有效载荷的一部分。为了检查Google是否已验证该用户,请发送带有以下参数的POST请求:
网址:https://www.google.com/recaptcha/api/siteverify
密码(必填)xxx
响应(必填)'g-recaptcha-response'的值。
remoteip最终用户的IP地址。
基本上,您需要检查POST请求是否secret
与Recaptcha帐户中的密钥匹配。如果是这样,则应该给用户一个下载链接,如果没有,则返回错误消息。
您可以在reCaptcha文档中了解有关此过程的更多信息:https : //developers.google.com/recaptcha/docs/verify
更新:如果您不关心有人会伪造结果,则可以使用JavaScript来做到这一点,例如:JSFiddle
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句