Предупреждение:Срок действия страницы истек

StackOverflow https://stackoverflow.com/questions/391485

  •  23-08-2019
  •  | 
  •  

Вопрос

Я добавил следующий код на свою главную страницу (Page_Load), поэтому, как только пользователь выйдет из системы, он не сможет использовать кнопку «Назад», чтобы увидеть страницу, на которой он находился ранее.

 Response.Buffer = true;
 Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
 Response.Expires = -1;
 Response.CacheControl = "no-cache";

Проблема в том, что мои пользователи хотят иметь возможность использовать кнопку «Назад» браузера, пока они вошли в приложение.Когда я комментирую код, чтобы не кэшировать страницы, они могут использовать кнопку «Назад», но после выхода из системы они могут использовать кнопку «Назад», чтобы увидеть предыдущую страницу, на которой они были, что создает угрозу безопасности.

Есть ли у кого-нибудь какие-либо предложения, чтобы они могли использовать кнопку «Назад» браузера в приложении, но после выхода из системы они не могут вернуться в приложение?

Это было полезно?

Решение

Является ли целью предотвратить возможность неаутентифицированного пользователя тайно посетить ранее использованный компьютер и увидеть, что делает аутентифицированный пользователь?В последнем случае вам следует перенаправить пользователя на страницу выхода из системы, на которой есть window.close();команда вместе с резкими выражениями о том, что это требование.Это не железно:IE будет просить пользователь, если он хочет позволить приложению закрыть окно, а другие браузеры вообще игнорируют запрос.Тем не менее, я думаю, что в правильной среде безопасности это является существенным дополнением к вашей политике безопасности - хотя и в первую очередь культурного разнообразия (оно помогает представителям культуры соблюдать правила).

Если вам нужен тип безопасности «однократно и все готово», то я боюсь, что блокировка кеша или добавление «window.forward()» на каждую страницу (что предотвращает любое использование кнопки «Назад») — это ваш вариант. единственный реальный вариант.

Еще одна вещь:AJAX также предоставляет некоторые полезные инструменты.Вы можете поместить конфиденциальную информацию на панель обновлений и заставить JavaScript загрузки страницы запускать обновление панели обновлений.Поскольку это всегда будет возвращаться на сервер, пользователи, не прошедшие проверку подлинности или срок действия которых истекли, будут отклонены.Это довольно значительная рабочая нагрузка, но я решил выбросить ее.

Другие советы

YUI предоставляет возможность легко управлять историей браузера, программно внося в нее URL-адреса.Взгляните на ЮИ История браузера менеджер.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top