Xpoint
   [напомнить пароль]

Cookie-авторизация

Метки: [без меток]
2005-12-13 22:44:33 [обр] Дмитрий Кузнецов[досье]

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

Но заметил очень неприятную вещь. Если в момент сессии (или в любое другое время, если кука сохранилась - если стояла галочка "запомнить меня") взять и украсть куку у пользователя, то скопировав её к себе, можно спокойно зайти под логином этого человека.
Порылся в интернете, обнаружил, что это вроде бы типичная ошибка, которая, в частности, была раньше на newmail.ru. Но вот как с ней бороться - не нашёл.

Пробовал копировать куки от разных форумов, того же phpbb, например, и нифига - авторизация не получается. Т.е. в тех куках хранится ещё какая-то информация, жёстко привязанная к компьютеру.

Если кто знает, как обезопасить куки и авторизацию в мойм случае. Помогите пожалуйста

спустя 9 минут [обр] Алексей Севрюков(6/1280)[досье]
Дмитрий Кузнецов[досье] Там скорее всего есть еще и привязка по IP.
Если же Вы хотите тотальной безопасности - используйте SSL.
спустя 8 минут [обр] Владимир Палант(49/4445)[досье]
сообщение промодерировано

Вы сначала решите, от чего защищаетесь. Злоумышленник проникнет на компьютер пользователя и похитит куку? А что ему тогда мешает с этого же компьютера и сделать свое черное дело, не трогая куки? Ведь не будете же вы при каждом действии пользователя спрашивать: "скажи, ты все еще Вася, правда?"

Куку может прочитать JavaScript-код и переслать на сервер злоумышленника. Это называется XSS (cross-site scripting). Материалов об этом в сети полно. Решение: не дайте злоумышленнику вставить свой JavaScript-код в страницы, которые показываются пользователям на вашем домене (у скриптов с чужого домена доступа к кукам в любом случае не будет).

Злоумышленник может прослушивать соединение пользователя с сервером. Для этого ему нужно получить доступ либо опять же к компьютеру пользователя, либо к одному из маршрутизаторов на пути данных. Этот сценарий достаточно маловероятен, чтобы защищаться от него только в том случае, если действительно есть, что защищать. И решение тоже давно известно: надо шифровать соединение, см. SSL.

Вроде все? А вот привязывать сессию к IP-адресу и/или USER_AGENT пользователя, как это вероятно делает phpBB, я вам не рекомендую. Толку в контексте описанных выше проблем мало, а вот неудобств пользователю вы доставите предостаточно. Есть к примеру немало пользователей, у которых IP-адрес может меняться с каждым запросом.

спустя 1 минуту [обр] Владимир Палант(49/4445)[досье]
PS: Тему в Интернет::Безопасность надо, наверное...
спустя 37 минут [обр] Дионис Сантин aka Человек с Ломом(0/406)[досье]
М Перенесено из форума "Интернет::Теория"
спустя 2 часа 51 минуту [обр] Дмитрий Кузнецов[досье]

Большое спасибо всем ответившим. Успокоили вы меня :)

А насчёт переноса темы - прошу прощения, что случайно не туда запостил. Просто в теме "Теория" уже были вопросы про куки, да и просто показалось, что это вполне неспецифический вопрос.

спустя 14 дней [обр] Юрий(0/8)[досье]
В phpbb куки подделываются точно. Не знаю как в новых версиях, но я не один раз эксперементировал с этим.
Все что там лежит это зашифрованный в MD5 пароль и номер пользователя. ;)
Powered by POEM™ Engine Copyright © 2002-2005