PHP получить url ajax запроса, без явного указания

Я передаю данные в php, с помощью ajax(post), подскажите как я могу узнать url страницы отправления, без явного указания url?


Ответы (1 шт):

Автор решения: Borislav

Писал решение на основе хэш-сумм, однако, в процессе понял, что ваша проблема в том, что она описана в разрезе того, что мы не можем никак доверять клиенту и определить, что запрос был отправлен именно с нашего клиента и данные в нем достоверны.

Могу предположить, что с аутентификацией клиента имеются определенные проблемы, стоит посмотреть в эту сторону. Например, система аутентификации на основе JWT довольно неплохо может помочь обезопасить клиент-серверное общение.

Если добиться должной безопасности при верификации клиента, то можно организовать следующее поведение:

  1. Первый запрос содержит url в явном виде и получает в ответ hash-сумму созданную из url (желательно с солью, подробнее тут).
  2. Второй запрос содержит данные + hash-сумма из первого запроса.
  3. На данном этапе, сервер берет значение referrer_url и прогоняет его через тот же алгоритм hash-ирования и сверяет полученную сумму с той, которую получили в запросе. Если суммы равны, то мы можем быть уверены в достоверности значения referrer_url.

При реализации описанного поведения, становится очень сложным подделать hash-сумму отправленную в основном запросе, даже если определить алгоритм hash-ирования, то камнем преткновения выступит рандомная соль, которую вы примешаете.

Один из немногих способов подделать hash-сумму в целевом запросе, это иметь возможность отправить полноценный подделанный первый запрос, который пройдет верификацию на сервере и вернет рассчитанную сумму для неверного url-a, но это возможно, только при слабой аутентификации клиента.

Если вам будет недостаточно приведенной теоретической информации, пожалуйста, опишите минимальную инфраструктуру, аутентификацию и причину, по которой вы считаете, не нужно использовать url в запросе, в явном виде.

→ Ссылка