после обнаружения ненадежности HTTP_REFERER
Мне было интересно, какова была лучшая альтернатива, чтобы указать на операцию правильный URL-адрес источника, который затем выполняет внутреннее перенаправление.
Прочитав различные темы, я понял, что единственными возможными решениями являются:
1) указать URL-адрес реферера непосредственно в качестве параметра операции.
2) создать пользовательскую систему хранения реферера, используя сессию.
На мой взгляд, первое решение логически более корректно и не имеет противопоказаний.
Использование второго решения и сохранение реферера в сеансе при каждом запросе страницы возможно из-за того, что использование сайта в хранимых реферерах различных вкладок не соответствует странице, на которую мы фактически отправляем операцию; Несмотря на эту ошибку (на мой взгляд, довольно некрасивую), это второе решение кажется наиболее рекомендованным экспертами. Зачем? Я что-то пропустил?
Спасибо всем за внимание и извините за мой низкий уровень английского.
хранение реферера в сеансе при каждом запросе страницы возможно, если использование сайта в разных вкладках хранимого реферера не соответствует странице, на которую мы фактически отправляем операцию; Несмотря на эту ошибку (на мой взгляд, довольно некрасивую), это второе решение показалось наиболее рекомендуемым экспертами.
Вы можете уведомить сервер об обновлении сеанса текущая страница перед уходом — таким образом, следующая загруженная страница будет знать, что было предыдущей, не передавая ничего в URL.
Тем не менее, хотя в этом решении все еще есть некоторые сбои — оно сломается при любом сбое соединения или если кто-то загрузит несколько страниц на нескольких вкладках, и запросы будут не синхронизированы (это основано на предположении, что между отправкой запроса javascript при выходе из страницы и получением сервером Запрос на загрузку следующей страницы больше ничего не происходит).
Лучшим способом было бы использовать оба — это и HTTP_REFERER
как запасной вариант.
Кроме упомянутой выше прохождения текущих страниц в URL подойдет, но понятно, почему вы пытаетесь избежать этого.
Других решений пока нет …