@QWATRIX

Как исправить ошибку в работе с API?

Давным-давно написал скрипт авторизации с одним сайтом и все работало как надо.
А теперь оно сломалось. Сам ничего не менял.
Вот код:
5ed81ede99a37066476147.png

$post_data = json_encode(["email" => $mail,"password" => 'password123456']);



	$curl = curl_init();
	
	curl_setopt_array($curl, [
		CURLOPT_URL => "https://lampyre.io/api/1.5/accounts",
		CURLOPT_RETURNTRANSFER => true,
		CURLOPT_POST => 1,
		CURLOPT_POSTFIELDS => $post_data
	]);


	$response = curl_exec($curl);
	curl_close($curl);

В переменной $mail находится почта для регистрации.

Сайт выдает такую ошибку:
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>


Иногда в конце есть:
<!— a padding to disable MSIE and Chrome friendly error page —>
<!— a padding to disable MSIE and Chrome friendly error page —>
<!— a padding to disable MSIE and Chrome friendly error page —>
<!— a padding to disable MSIE and Chrome friendly error page —>
<!— a padding to disable MSIE and Chrome friendly error page —>
<!— a padding to disable MSIE and Chrome friendly error page —>

В интернете не нашел решения моей проблемы.
Помогите пожалуйста.

Повторюсь, все раньше работало.

Апи вытащил через Burp с сайта, на сайте все работает, а тут нет.

Делал даже запрос CURL через командную строку, аналогичный запросу из браузера (генерировал бурп), но выдает такую же ошибку.

В чем может быть дело?
  • Вопрос задан
  • 14028 просмотров
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Поставили защиту. Как обходить? Экспериментировать. С других IP, с нормальными заголовками и все в таком духе
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@xbox
Столкнулся с такой же ситуацией.

Причем в моем случае я пробовал подключиться к главной странице своего пустого сайта.
При обращении с помощью скрипта на питоне выдавался код ответа 404, а сама страница отличалась от моей 404 страницы. В теле ответа были те самые
"<!— a padding to disable MSIE and Chrome friendly error page —>"
"<!— a padding to disable MSIE and Chrome friendly error page —>"

Страница, которую я пробовал получить, была статическая, отдавал ее веб-сервер NGINX. Никаких хитрых защит на сервере я не настраивал и поэтому очень удивился 404-ответу и начал копать.

Все оказалось очень просто. Оказывается, я взял скрпит из другого проекта. В заголовках headers в поле host было задано имя домена, которое не соответствовало новому домену, на котором проводились тесты. Как только я установил правильно значение "host" в заголовках запроса (так, чтобы оно совпадало с доменом, к которому обращался), соединение прошло успешно и отдалась правильная страница.

Так это на питоне можно задать. Переменную headers потом используем при подключении с помощью Requests итп.
На большинстве языков программирования будет что-то похожее.
headers["host"]="my_domain.com"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы