Каким образом сайт может вычислить что запрос отправляется не с нужного домена, а с локалхоста?
Здравствуйте, суть вопроса передана в названии, могу лишь добавить что речь идет об обходе 3ds защиты сервиса p2p платежей одного из банков. Задача для своего использования, абузить эту штуку нет никакого желания. Так вот, я отследил запросы которые банк отправляет через цепочку сайтов с формами, на каждой из которых происходит генерация необходимых параметров для запроса. Конкретно проблема с ds1.mirconnect.ru. Этот сайт в упор кидает мне 500 ошибку, чтобы я не делал. Пользуюсь axios, данные (paReq, MD и TermUrl) отправляются тоже правильные, я специально расшифровал paReq который генерирует мой скрипт и paReq с удачного запроса через сайт, они идентичные по структуре и правильно отличаются по значениям. Ума не приложу, почему сервер может вернуть 500 ошибку, там просто нечему ломаться, данные проверял через сервис проверки текстов, они верные, хидеры скопировал с оригинального запроса из браузера и тоже подставил, куки никакие не требуются, проверял на сайте мирконнекта, кук нет. Может кто копал туда, подскажет что не так делаю. Если нужны какие то тех подробности, скажите
PS если я пробую делать аналогичный запрос с помощью postmana и прочего, кидает на 301 с нормальным текстом аля "по техническим причинам запрос произвести не удалось"
Aetae, да я эту штуку перелопатил вдоль и поперек, сервер мерчанта генерирует все правильно и валидно, иначе бы на одном из промежуточных этапов сломался. И все же как то он отличает запрос от axios и браузера, возвращая разные ответы
Soft_touch_plastic, насколько ты уверен что запросы идентичны? Ты пробовал подменять сервер и сравнивать в сыром текстовом виде какой именно запрос приходит из браузера и какой с сервера? Точно ли они идентичны в результате? Если да - на край можно поставить wireshark и посмотреть на сетевом уровне, но это вряд ли что-то даст.
Также, если твой сервер на каком-то чужом ДЦ, а не дома - то там может быть тупо бан диапазона адресов известных хостеров.
но ведь я не использую браузер, который ждет от сервера заголовков access-control-allow-* и блокирует ответ для меня что и называется cors. Я использую node js + axios
кстати ds1.mirconnect таких заголовков и не отправляет