Кэширование защищённых страниц

Ямерт

The Old One
Кэширование защищённых страниц

Есть защищённая страница 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
 

alpes

Весь мир на ладони
Может поможет жестко запретить кэширование хидерами, знаменитая четверка
 

Ямерт

The Old One
Она уже есть.
P.S. Да, кстати, Вэб-сервера на обоих машинах - Apache 1.3.27 (Unix)
 

Ямерт

The Old One
Однако тот же самый случай.
Перенёс систему с сервера разработки S1 (PHP 4.3.2, Apache 1.3.28) на тестовый сервер S2 (PHP 4.3.3, Apache 2.0) - и появилась та же проблема.
Сказал чтоб убрали Apache 2.0, и поставили Apache 1.3.x - однако "скоро сказка сказываицца, да не скоро дело делаицца". Да и нутром чую, что дело не в этом.
Думаю, проблема в том, что к серверу S2 я иду через прокси, а к S1 без, так как он во внутренней сети.
Посылаю джентльменский набор хэдэров:
PHP:
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
	header("Cache-Control: no-store, no-cache, must-revalidate");
	header("Cache-Control: post-check=0, pre-check=0", false);
	header("Pragma: no-cache");
но эффект нулевой :(

Кто знает как разрулить эту ситуацию?
Пока в голову приходит только _настоятельно_ рекомендовать клиенту закрыть браузер после логаута (выводя "<script>window.close()</script>")...
 
Сверху