asp.net: есть ли способ «отключить» кнопку возврата браузера после выхода из системы? - PullRequest
1 голос
/ 22 марта 2012

Есть ли способ "отключить" кнопку возврата браузера после выхода из системы?

Я прочитал несколько постов и теперь знаю, что могу отключить кеширование . (например, вход в систему для аутентификации ASP.NET и выход из системы с помощью кнопки возврата браузера )

Это работает, но я хочу отключить кнопку "Назад" по соображениям безопасности только после выхода из системы (= когда больше нет доступных сеансов).

Если я отключу кеширование, пользователь не сможет использовать кнопку возврата браузера при входе в систему.

Я использую пользовательскую аутентификацию, а не стандарт asp.net

Есть ли безопасная (= нет JavaScript) возможность сделать это?

Ответы [ 4 ]

2 голосов
/ 22 марта 2012

Как я уверен, вы уже знаете, что вы не можете напрямую отключить кнопку "назад" в браузере.

Единственные методы, которые не позволяют пользователю вернуться назад, - это либо установить страницу вкэшировать или включать использование javascript.Исходя из того, что ни один из этих способов не работает для вас, не существует решения для управления этим.За эти годы я просмотрел много статей и несколько раз переыскивал их, и во всех предложениях использовался сценарий на стороне клиента или кеш.

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

Короче говоря, вам нужно будет выбратьменьшее из двух зол.

  • Использование кеша страниц гарантирует, что люди вообще не смогут использовать кнопку «назад» без использования javascript - возможно, лучшую безопасность
  • Использование javascript для удаления истории страниц при выходе из системыпозволит вам запретить пользователям возвращаться после выхода из системы, но кто-то с включенным noscript или кто-то злоумышленник может отключить ваш контроль.

Вы точно не указали, кого и от чего пытаетесь защитить, но если я угадаю, и вы беспокоитесь о пользователе, который покидает свой компьютер после выхода из системы,но не закрывая окно браузера, действительно ли Javascript вызывает беспокойство?

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

Любой из этих вариантов можно обойти через вредоносное ПО, которое перехватывает / изменяет заголовки http, JavaScript и т. Д.так что ни один действительно не эффективен на 100%.Единственное различие, которое я вижу, заключается в том, что параметр javascript может быть нарушен как путем изменения html-кода при его перемещении по сети (с использованием чего-то вроде Fiddler или вредоносного ПО), так и путем простого отключения Javascript.поэтому параметр кэширования страниц незначительно лучше в целях безопасности.

Использование https вместо обычного http предлагает намного больше защиты в сочетании с методом заголовка, что делает его намного более эффективным, поскольку значительно увеличивает сложность манипулированияданные по сети, и они не отключаются простым отключением JavaScript.

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

2 голосов
/ 22 марта 2012

Все, что работает в браузере, может быть перехвачено и / или отключено. Можно сохранить любую страницу, отправленную на стороне клиента: любые ссылки, URL, контент, javascript и т. Д.

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

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

однако вы можете отговорить большинство пользователей от чего-то подобного

function logout(){
    window.open(loggedOutPageURL)
    self.close ()
}

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

0 голосов
/ 22 марта 2012

написать скрипт ниже кнопки выхода из системы:

<script language="text/javascript">

window.history.forward(1);

</script>
0 голосов
/ 22 марта 2012

Откажитесь от метода удаления сеанса при выходе из системы и проверьте Session! = Null на странице данных или панели инструментов, тогда я думаю, что нет необходимости отключать кнопку Назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...