REQUEST_URI - путь и запрос URI, как и было запрошено. Кроме того, $_SERVER['HTTP_REFERER']
содержит значение поля заголовка HTTP-запроса Referer , если доступно. Таким образом, чтобы проверить, содержат ли оба одинаковые URI-пути, вы можете сделать это:
if (isset($_SERVER['HTTP_REFERER'])) && parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) === parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH)) {
// Referer existing and its path is equal to the current requested URI path
}
Но причина, по которой isset
используется в этом случае, заключается в том, что Referer не всегда отправляется. Как правило, только когда запрос вызван переходом по ссылке или отправкой формы, поле заголовка будет отправлено клиентом. Таким образом, вполне вероятно, что это поле заголовка не установлено. Кроме того, его ценность также может быть подделана и поэтому не заслуживает доверия, как любая другая информация, поступающая от клиента.
Это также причина, по которой вы не должны использовать эту информацию для проверки подлинности запроса. Вместо этого используйте собственные токены аутентификации .