PHP cURL Google reCaptcha2 Инъекция заголовка

У меня есть некоторые проблемы с cURL и Google reCaptcha2, чтобы избежать «Робот» & «Спаммер» Auto-Reg´s.

Поэтому я выбрал Google ReCaptcha2, чтобы проверить пользователя на WWW сайте.

Эта проблема:

после проверки кода, я обнаружил, что есть
Header Injection in 'curl_setopt_array' via '$curlConfig'

Мой сервер reCaptcha с использованием cURL из-за PHP File getContent заблокирован PHP Config.

Мой код reCaptcha:

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 String обратно:

$jsonResponse = json_decode($response);
if ($jsonResponse->success == "true") { Good } else { Exit not good! }

Инъекция? Данные = Массив? $ Служить?

Спасибо за помощь

0

Решение

я не вижу здесь никаких уязвимостей при внедрении кода, но вы не показываете нам, как вы справляетесь с событием g-recaptcha-response находясь в POST-запросе вообще. Скорее всего, вы не обрабатываете это событие, и все, что нужно сделать хакеру, чтобы пройти проверку, — это не посылать g-recaptcha-response поле вообще. вместо if (isset($_POST['g-recaptcha-response'])) сделать что-то вроде if (empty($_POST['g-recaptcha-response'])) {http_response_code(400);die('no captcha answer provided!');}}

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector