Как закончить сеанс в Java? - PullRequest
       0

Как закончить сеанс в Java?

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

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

Ответы [ 2 ]

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

у сеанса есть недействительный метод.

session.invalidate();

Посмотрите на API

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/api/javax/servlet/http/HttpSession.html

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

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

response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Stop doing bad things");

проверить

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/1.6/api/index.html

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

Вы можете сделать его сеанс недействительным, но этого недостаточно. Если это все, что вы делаете, он может сразу же войти снова, чтобы создать новый сеанс. Или запустите его сессионный файл cookie и начните снова.

Вы также должны либо полностью отключить или удалить его учетную запись, либо удалить права доступа, которые позволяют ему делать все, что вы пытаетесь предотвратить. (И в крайнем случае вам также может понадобиться заблокировать доступ на основе IP-адресов и т. Д.)

НО как я могу помешать ему вернуться на страницу, на которой он уже был.

Вы не можете запретить ему использовать «назад», или повторно вводить URL из истории браузера, или вводить его в панель навигации.

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

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

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