我正在创建一个使用HTTPS的安全的基于Web的API; 但是,如果我允许用户使用查询字符串配置它(包括发送密码)这也是安全的,还是应该通过POST强制它?
我只是用复选框设置了新的google recaptcha,它在网站端工作正常,但是我不知道如何在服务器端使用php进行操作,我尝试使用下面的旧代码,但即使是不使用recaptcha.
require_once('recaptchalib.php');
$privatekey = "my key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
$errCapt='<p style="color:#D6012C ">The CAPTCHA Code wasnot entered correctly.</p>';}
Run Code Online (Sandbox Code Playgroud) 最近,谷歌彻底彻底检查了他们的reCaptcha API并将其简化为一个复选框.

问题是,我可以提交包含reCaptcha的表单而不检查它,表单将忽略reCaptcha.
在您必须使用私钥等将表单发送到PHP文件之前,我在他们的开发人员指南中没有看到任何提及.我不知道如何验证表单以确保用户填写新的reCaptcha.
我错过了什么吗?是否仍需要具有私钥的PHP文件?
到目前为止我所有的reCaptcha都是:
<div data-type="image" class="g-recaptcha" data-sitekey="My Public Key"></div>
Run Code Online (Sandbox Code Playgroud) 我有什么:
$data = array(
'secret' => "my-app-secret",
'response' => "the-response"
);
$verify = curl_init();
curl_setopt($verify, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($verify, CURLOPT_POST, true);
curl_setopt($verify, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($verify, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($verify);
var_dump($response);
Run Code Online (Sandbox Code Playgroud)
我得到了什么 :( bool(false)这意味着curl_exec()失败)
我的期望:JSON对象响应
请帮忙.谢谢.
有人可以给我发一个链接,或者给我一个纯Javascript/jQuery验证码的例子.因为我可以在PHP/C#后端看到很多例子.但我只需要Javascript.
谢谢 !!
我正在实施谷歌 reCaptcha。在 Google 文档中,他们说了这样做的方法。该文档建议对验证码进行服务器端验证。我想知道为什么我们需要在服务器端验证它,因为它已经在谷歌服务器的 UI 端验证过了。是否建议单独在 UI 端实现验证码而不在服务器中进行验证?如果单独在 UI 中完成,有什么问题(如果有的话)。
php ×3
recaptcha ×3
brute-force ×1
captcha ×1
curl ×1
html ×1
https ×1
javascript ×1
jquery ×1
query-string ×1
security ×1
ssl ×1