PHP получить url ajax запроса, без явного указания
Я передаю данные в php, с помощью ajax(post), подскажите как я могу узнать url страницы отправления, без явного указания url?
Ответы (1 шт):
Писал решение на основе хэш-сумм, однако, в процессе понял, что ваша проблема в том, что она описана в разрезе того, что мы не можем никак доверять клиенту и определить, что запрос был отправлен именно с нашего клиента и данные в нем достоверны.
Могу предположить, что с аутентификацией клиента имеются определенные проблемы, стоит посмотреть в эту сторону. Например, система аутентификации на основе JWT довольно неплохо может помочь обезопасить клиент-серверное общение.
Если добиться должной безопасности при верификации клиента, то можно организовать следующее поведение:
- Первый запрос содержит url в явном виде и получает в ответ hash-сумму созданную из url (желательно с солью, подробнее тут).
- Второй запрос содержит данные + hash-сумма из первого запроса.
- На данном этапе, сервер берет значение
referrer_urlи прогоняет его через тот же алгоритм hash-ирования и сверяет полученную сумму с той, которую получили в запросе. Если суммы равны, то мы можем быть уверены в достоверности значенияreferrer_url.
При реализации описанного поведения, становится очень сложным подделать hash-сумму отправленную в основном запросе, даже если определить алгоритм hash-ирования, то камнем преткновения выступит рандомная соль, которую вы примешаете.
Один из немногих способов подделать hash-сумму в целевом запросе, это иметь возможность отправить полноценный подделанный первый запрос, который пройдет верификацию на сервере и вернет рассчитанную сумму для неверного url-a, но это возможно, только при слабой аутентификации клиента.
Если вам будет недостаточно приведенной теоретической информации, пожалуйста, опишите минимальную инфраструктуру, аутентификацию и причину, по которой вы считаете, не нужно использовать url в запросе, в явном виде.