Cookie Stealer / Система входа в систему (PHP) - PullRequest
1 голос
/ 04 марта 2012

Я уже несколько часов гуглю это, но все по-разному.

Так что мне интересно, как обрабатывать информацию, когда кто-то входит в систему.

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

И да, это на самом деле мой вопрос. Как я могу "защитить" пользователя? Проверка IP тоже? Что-нибудь еще?

Спасибо, Альбин.

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

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

. Вы можете помочь браузеру, установив флаг cookie только для http.Смотрите аргумент $ httponly для setcookie.Если cookie помечен как http-only, браузер не сделает его доступным для сценариев, таких как javascript.Файл cookie будет передан только в оригинальном http-заголовке.это практически исключит риск захвата сеансов на основе XSS, поскольку они обычно используют javascript.

Еще одна большая атака - человек в средней атаке .Злоумышленник имеет доступ к трафику между вашим клиентом и вашим сервером.Теперь он может читать заголовки http, поэтому куки и имитировать запрос.Он даже может подделать IP-адрес вашего клиента.Чтобы защититься от атак злоумышленников такого типа, вам потребуется зашифрованное соединение.Для этой цели большинство веб-сайтов используют HTTPS .

Если вам нужна только аутентификация, вы также можете использовать дайджест-аутентификацию HTTP .Вот рабочий пример для дайджест-аутентификации с использованием PHP здесь .

0 голосов
/ 04 марта 2012

Тестирование, если IP остается прежним, будет одним из способов.Однако лучше проверить, совпадает ли она с заданной маской подсети (например, 255.255.0.0), поскольку у некоторых пользователей могут быть динамические IP-адреса.

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

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

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