В обычном веб-приложении w/login и secure data, что является простым способом защитить эти данные и предотвратить его видимость с помощью кнопки возврата браузера, как только пользователь выйдет из системы?
Самый простой способ предотвратить отображение кнопки "Назад" вашего браузера с защищенных данных после выхода пользователя из системы?
Ответ 1
Здесь полезное руководство по кешированию браузера.
Вы хотите установить заголовки даты кеша и даты истечения срока действия (установка даты в прошлом), например
Cache-Control: no-cache
Expires: Fri, 31 Dec 1998 12:00:00 GMT
Ответ 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 при выходе из системы.