Как пропустить историю посещенной страницы в браузере - PullRequest
1 голос
/ 03 декабря 2010

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

Поэтому страницы вообще не должны отображаться в истории.

Я пробовал следующие способы, но не смог.

Решение 1:

1. <%
2. session.invalidate();
3. response.setHeader("Cache-Control","no-cache");
4. response.setHeader("Cache-Control","no-store");
5. response.setDateHeader("Expires", 0);
6. response.sendRedirect("home.jsp");
7. %>

Решение 2:

<%
Response.Cache.SetExpires(DateTime.Parse(DateTime.Now.ToString()))
Response.Cache.SetCacheability(HttpCacheability.Private)
Response.Cache.SetNoStore()
Response.AppendHeader("Pragma", "no-cache")
%>

Решение 3:

<body onload="history.forward()">

Решение 4:

<%
response.setDateHeader("Last-Modified", System.currentTimeMillis());
%>

Как и в Firefox, есть функциональность Инструменты -> Начать приватный просмотр, которыйне хранит данные сессииЕсть ли что-нибудь, что может быть сделано JavaScript для достижения этой цели.

Ответы [ 5 ]

3 голосов
/ 03 декабря 2010

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

2 голосов
/ 03 декабря 2010

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

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

1 голос
/ 03 декабря 2010

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

Одним из способов достижения этого является создание на сайте A страницы, которая содержит только iframe, загружающий содержимое сайта, которое вы не хотите видеть в истории браузера.

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

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

0 голосов
/ 03 декабря 2010

Это пахнет "безопасность мраком". Вы должны решить реальную проблему (конфиденциальные данные в URL-адресах) вместо того, чтобы запутывать свой путь к ней.

Просто сделайте так, чтобы URL не содержали какой-либо конфиденциальной информации (и, пожалуйста, не делайте этого, оборачивая всю страницу в iframe - это опять-таки немного запутывания).

0 голосов
/ 03 декабря 2010

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

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