Ямерт
The Old One
Кэширование защищённых страниц
Есть защищённая страница http://myserver/admin/..., доступ к которой даётся лишь тогда, когда пользователь авторизовался (механизм сессий). Когда пользователь выходит, то сессия убивается, и делается редирект на форму логина.
Сайт стоит на серверах С1 (PHP 4.2.3) и С2 (PHP 4.3.0).
Далее происходят интересные вещи:
На С1, когда пользователь закрыл сессию (или она сама закончилась по таймауту), и нажимает кнопку Back в браузере, он видит вместо защищённой страницы форму логина, что и требуется.
Но на С2 при нажатии кнопки Back он видит защищённую страницу, она почему-то кэшируется. Разумеется, юзер там ничего делать не может, так как он не авторизован - но он может смотреть её содержание, пока не обновил окно. А это уже немало.
В чём дело - я пока не понял. Может, кто-то подскажет?
Установки сессии:
Куки включены.
Мне таки кажется, что дело в различии версий 4.2.3 и 4.3.0
Есть защищённая страница http://myserver/admin/..., доступ к которой даётся лишь тогда, когда пользователь авторизовался (механизм сессий). Когда пользователь выходит, то сессия убивается, и делается редирект на форму логина.
Сайт стоит на серверах С1 (PHP 4.2.3) и С2 (PHP 4.3.0).
Далее происходят интересные вещи:
На С1, когда пользователь закрыл сессию (или она сама закончилась по таймауту), и нажимает кнопку Back в браузере, он видит вместо защищённой страницы форму логина, что и требуется.
Но на С2 при нажатии кнопки Back он видит защищённую страницу, она почему-то кэшируется. Разумеется, юзер там ничего делать не может, так как он не авторизован - но он может смотреть её содержание, пока не обновил окно. А это уже немало.
В чём дело - я пока не понял. Может, кто-то подскажет?
Установки сессии:
PHP:
ini_set("session.use_cookies", "1");
ini_set("session.cookie_lifetime", "0");
ini_set("session.cookie_path", "/");
ini_set("session.gc_probability", "100");
ini_set("session.gc_maxlifetime", "600");
ini_set("session.entropy_length", "0");
ini_set("url_rewriter.tags", "a=href,area=href");
ini_set("session.cache_limiter", "nocache");
ini_set("session.cache_expire", "180");
Мне таки кажется, что дело в различии версий 4.2.3 и 4.3.0