Работа с перехватом сессий в PHP - PullRequest
2 голосов
/ 28 июня 2010

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

Итак, мне было интересно, какие решения вы, ребята, реализовали? Вы даже используете нативные сессии PHP или есть более безопасное решение?

Ответы [ 2 ]

2 голосов
/ 28 июня 2010

Вам не нужен идентификатор сеанса, чтобы перехватить сеанс.Атака XSS может идти одним из 2 способов.Наиболее распространенным является чтение document.cookie и отправка его на удаленный сервер (этот запрос также будет содержать жертв USER_AGENT, поэтому проверка этого значения является полной пустой тратой времени, поскольку не предотвращает любую атакукогда-либо ).Классный метод безопасности, разработанный Microsoft, называется HTTPOnly Cookies , и большинство браузеров поддерживают эту функцию безопасности.

HTTPOnly Cookies и проверка IP-адреса клиента не останавливает все перехваты сеанса.Фактически, если у злоумышленника есть уязвимость XSS, он может просто подделывать запросы с помощью XHR в браузере жертвы, и там не нужно будет знать значение куки.

В конце дня, чтобы прекратить перехват сеанса, вам необходимо подключить уязвимости в своем веб-приложении.Самое главное, что вам нужно предотвратить "Session Riding", который также известен как CSRF .Вам также необходимо предотвратить уязвимости XSS , Бесплатная версия Acunetix - хороший инструмент для их поиска.,И последнее, но не менее важное: вы должны прочитать OWASP A3: Сломанная аутентификация и управление сеансами .Распространенным нарушением OWASP A3 является то, что люди не используют HTTPS для всего сеанса .Вы ни в коем случае не можете передать значение cookie через http, это будет иметь тот же эффект, как если бы вы указали имя пользователя / пароль.Если хакер отслеживает трафик, он сразу получает доступ к вашему сайту.

0 голосов
/ 28 июня 2010

Просто выйдите из системы, если запрос имеет другой IP и / или имя хоста.Что касается людей с динамическими IP-адресами - хорошо, вход в систему не так уж и проблематичен.

Очевидно, что «правильный» способ борьбы с ним - реализация SSL.

...