Самый простой способ предотвратить отображение кнопки "Назад" вашего браузера с защищенных данных после выхода пользователя из системы?

В обычном веб-приложении w/login и secure data, что является простым способом защитить эти данные и предотвратить его видимость с помощью кнопки возврата браузера, как только пользователь выйдет из системы?

Ответы

Ответ 2

Нет идеального решения

Хотя есть некоторые очень разумные решения для этого (заголовки управления кешем, javascript и т.д.), вам нужно понять, что, как только вы отправили что-то клиенту, он не под вашим контролем. Вы не можете гарантировать, что клиент будет обрабатывать данные так, как вам хотелось бы.

Например:

  • может быть ошибка в браузере
  • браузер может позволить пользователям отключить управление кешем
  • пользователь может работать с отключенным javascript.

Извините: (

Ответ 3

Заголовки управления кэшем (Expires, Cache-Control, ETag) обычно предотвращают кеширование страницы, заставляя браузер запрашивать новую копию, после чего вы можете проверить статус сеанса. Иногда их игнорируют в интересах "производительности".

Существует два подхода Javascript, которые могут вам помочь:

  • Используйте событие выхода из вашей страницы (onSubmit для форм или onUnload для других страниц), чтобы очистить содержимое при выходе из страницы.
  • Используйте document.location.replace() вместо обычных ссылок при перемещении между страницами, чтобы не оставлять след в истории браузера, к которому пользователь мог вернуться.

Оба из них, вероятно, будут иметь довольно ужасный эффект на юзабилити, хотя.

Ответ 4

Установите заголовки кеширования для запрета любого кэширования страницы. Это должно предотвратить даже отображение самой страницы, когда пользователь нажимает кнопку "Назад", если они не вошли в систему.

Ответ 5

Я пробовал этот код VB.NET в IE и Firefox.

Response.Cache.SetAllowResponseInBrowserHistory(False) Response.Cache.SetCacheability(HttpCacheability.NoCache) Response.Cache.SetNoStore() Response.Expires = 0

Это трюк, но я согласен с другими ответами, где вы не можете гарантировать, что будет вести себя клиентский браузер.

Ответ 6

В зависимости от вашего решения для входа в систему (SSO - Windows Live/OpenID vs homegrown, где хранится информация для входа и т.д.). Поскольку "назад" обычно не запрашивает страницу снова, я предлагаю очистить формы в JavaScript (OnLoad). На стороне сервера вы можете заполнить их (Page_Load). Очистите сеанс и viewstate при выходе из системы.