Каков наилучший подход к безопасности для веб-сайта? - PullRequest
1 голос
/ 19 января 2011

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

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

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

Этот план уходит?сайт уязвим?

Ответы [ 3 ]

2 голосов
/ 20 января 2011

Всегда есть какое-то состояние, которое вам придется сохранять на серверах, если вы хотите выполнить любой вид входа пользователя.Единственный вопрос: где находится это состояние?

  1. На сервере приложений или
  2. В базе данных (или, возможно, в другом хранилище)

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

Поскольку ваша реализация не имеет состояния, с вашим текущим решением вам придется извлекать имя пользователя и пароль из базы данных для каждого запроса.Вы можете легко изменить это, чтобы получить токен и метку времени.Единственное существенное изменение заключается в том, что на пользователя может быть несколько сеансов, поэтому вам потребуется отношение 1: N для пользователей / токенов.

1 голос
/ 19 января 2011

Первый:

Если вы хотите писать безопасные веб-страницы, прочитайте OWASP Top Ten . Это полный обзор большинства уязвимостей веб-приложений.

Второе:

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

1 голос
/ 19 января 2011

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

Что происходит, когда я копирую чей-то файл cookie?

Что происходит, когда я расшифровываю идентификатор и меняю его?(это значение типа int?)

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