我有一些麻烦与cURL和谷歌reCaptcha2,以避免“机器人”&“垃圾邮件”自动注册。PHP cURL谷歌reCaptcha2头注入
所以我选择了google的reCaptcha2来检查WWW网站上的用户。
问题:
检查代码后,我发现有一个 Header Injection in 'curl_setopt_array' via '$curlConfig'
阻断PHP配置由于PHP File getContent
我了Serverside验证码使用卷曲。
我的验证码代码:
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
$privatekey = '######### Priv Key ###############';
$url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $privatekey,
'response' => $captcha,
'remoteip' => $_SERVER['REMOTE_ADDR']
);
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $data
);
$ch = curl_init();
curl_setopt_array($ch, $curlConfig);
$response = curl_exec($ch);
curl_close($ch);}
所以,作为结果,我们从解码JSON字符串回数据:
$jsonResponse = json_decode($response);
if ($jsonResponse->success == "true") { Good } else { Exit not good! }
的注入?数据=数组? $服务?
感谢您的帮助
正确,只是使用isset验证码,如果不是那么{错误msg blabla} – VBnoob