Можем ли мы взломать сайт, который просто хранит имя пользователя в качестве переменной сеанса? - PullRequest
8 голосов
/ 25 января 2009

Я разработал свой веб-сайт, который проверяет, зарегистрирован ли пользователь и создает переменную сеанса с именем пользователя. Это все, что хранится как переменная сеанса. Если я хочу защитить свои страницы (чтобы их могли видеть только зарегистрированные пользователи), я проверяю, установлена ​​ли переменная сеанса. Это безопасно? Или вы можете дать более безопасный метод?

Ответы [ 2 ]

11 голосов
/ 25 января 2009

Как правило, сессия на стороне сервера, но если я каким-то образом получаю идентификатор сессии, я могу просто перехватить его.

Я бы рекомендовал как минимум сохранить IP-адрес, а также, возможно, также User-Agent, и в случае несоответствия аннулировать сеанс.

1 голос
/ 28 января 2009

В принципе, вы можете хранить все, что хотите в сессии. Единственные предостережения:

  • если вы не используете защищенные соединения (например, SSL), идентификатор сеанса может быть перехвачен и перехвачен. Это не имеет значения, потому что имя пользователя и пароль также могут быть взломаны, и вы подвергаетесь атакам «человек посередине» и т. Д. Таким образом, в целом ваша система работает нормально и обеспечивает низкий уровень безопасности без SSL.
  • В статьях по PHP упоминаются некоторые проблемы с общим хостингом и перехватом сессий. Я не уверен, что это правда, поэтому я разместил вопрос здесь . Редактировать: Эта проблема кажется реальной, поэтому вам придется использовать один из обходных путей для сохранения сеанса (например, базы данных), если вы используете PHP.

В целом, однако, большинство упомянутых проблем безопасности (включая атаки XSS) связаны не с хранением данных в Session, а с общими проблемами безопасности. Хранение идентификатора пользователя (или какой-либо другой зашифрованной формы) в Session обычно довольно безопасно.

Самое главное: если бы вы использовали свой собственный алгоритм для генерации случайного cookie-кода для каждого пользователя, это, несомненно, имело бы больше недостатков безопасности (не будучи экспертом), чем алгоритмы генерации сеансового ключа PHP , ASP.NET, Rails, что угодно ...

Я мог бы найти более подходящую цитату Брюса Шнайера, но она подойдет: «Никто не может дублировать уверенность, которую RSA предлагает после 20 лет криптоаналитического обзора».

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