Написать комментарий | |
Евгений Верховцев
20-01-2011 04:29 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
А если пользователь входит через OpenID , что тогда ты сможешь стырить ? Или ты имеешь ввиду про свой сайт ?
ответить
(с цитатой)
Роман Коваленко
20-01-2011 05:15 (ссылка)
20-01-2011 07:33 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Довольно интересный подход к защите от перехвата идентификатора сеанса описан в книге Марка Вандшнайдера «Основы разработки веб-приложений с помощью PHP и MySQL, Серия «полное руководство» (2008) на странице 412, а на странице 425 - алгоритмы аутентификации пользователя.
20-01-2011 07:41 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
IP может быть одинаковым для нескольких пользователей, если они выходят через одну подсеть (в самой простой ситуации - ADSL-роутер на четыре компьютера).
Такой, довольно абстрактный пример: в компьютерном клубе «парк на двадцать машин» и пользователи двух-четырёх из них решили одновременно посетить ваш сайт под своим логином и паролем.
Такой, довольно абстрактный пример: в компьютерном клубе «парк на двадцать машин» и пользователи двух-четырёх из них решили одновременно посетить ваш сайт под своим логином и паролем.
Евгений Верховцев
21-02-2011 20:51 (ссылка)
Рауф Багиров
08-03-2011 12:30 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Может быть, анализировать IP плюс UserAgent
Типа так
$a=array(
getenv('REMOTE_ADDR'),
getenv('HTTP_X_FORWARDED_FOR'),
getenv('Ну какие там ещё заголовки есть содержащие IP'),
getenv('HTTP_USER_AGENT'),
);
$uid=md5(serialize($a));
Это уникальный ID клиента. Впрочем, не панацея. Но абсолютной панацеи нет.
Но вероятность подделки одновременно СИДа, ИП и юзерагента намного ниже.
Типа так
$a=array(
getenv('REMOTE_ADDR'),
getenv('HTTP_X_FORWARDED_FOR'),
getenv('Ну какие там ещё заголовки есть содержащие IP'),
getenv('HTTP_USER_AGENT'),
);
$uid=md5(serialize($a));
Это уникальный ID клиента. Впрочем, не панацея. Но абсолютной панацеи нет.
Но вероятность подделки одновременно СИДа, ИП и юзерагента намного ниже.
Евгений Верховцев
08-03-2011 21:56 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Либо добавляешь проверку IP что конечно не очень эффективно при ПРОКСИ , либо делаешь такую феню как на всех крупных сайтах : например ты видишь когда заходишь на МАЙЛ или В Контакте есть один чекбоксик с надписью - чюжой ли у тебя компьютер , если чужой то ставишь галочку и тогда куки удаляешь , если нет то ничего не делаешь . Я уверен что у тебя всё получится :-DDDDD
Александр Тищенко
28-06-2011 23:18 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Ну тут я бы определил несколько правил.
1. Не хранить в сессии никаких данных.
2. никогда не передавать ID сессии (хотя и в кукисы заглянуть можно)
3. всегда делать связку IP + ID сессии и сравнивать их (самый простой способ хранить их в базе).
При авторизе берём IP и ID сессии, кидаем их в базу, далее сравниваем ID сессии с IP из базы для данной сессии.
в последствии просто смотрим по сесии (хотя я и сессию в базе md5пячу ) его начальный IP и сравниваем.
Если не совпали... пошел нафиг.
4. Дополнительно можно кинуть в кукисы какойнить ainfo = md5(SID.IP) и его сравнивать после проверок на соответствие IP и ID сессии.
Ну на самом деле это не идеальный способ (если у юзера отключены кукисы)
1. Не хранить в сессии никаких данных.
2. никогда не передавать ID сессии (хотя и в кукисы заглянуть можно)
3. всегда делать связку IP + ID сессии и сравнивать их (самый простой способ хранить их в базе).
При авторизе берём IP и ID сессии, кидаем их в базу, далее сравниваем ID сессии с IP из базы для данной сессии.
в последствии просто смотрим по сесии (хотя я и сессию в базе md5пячу ) его начальный IP и сравниваем.
Если не совпали... пошел нафиг.
4. Дополнительно можно кинуть в кукисы какойнить ainfo = md5(SID.IP) и его сравнивать после проверок на соответствие IP и ID сессии.
Ну на самом деле это не идеальный способ (если у юзера отключены кукисы)
24-01-2012 22:37 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Я бы не забывала еще об одном аспекте безопасности сессий. Если вы на сайт помещаете баннеры, счетчики или любой другой код, который подгружается со стороннего сервера, то его надо непременно помещать в iframe, так как если кто-то вставит в этот код в один прекрасный день (даже всего в 1 http запрос) соотв яваскрипт, он получит идентификатор сессии.
24-01-2012 22:48 (ссылка)
Re: Как обезопасить авторизацию на php при использовании сеанса?
Вообще-то, можно привязать к идентификации и разрешение монитора. Если разрешение монитора вдруг на каком-то запросе сессии изменилось - недопуск. Кто-нибудь может себе представить, что пользователь в средине сессии заменит монитор? ;)
Это не защита, это просто попытка нагрузить лишней работой атакующего. Ну и таких работ вобщем-то можно еще много на его плечи взвалить.
Это не защита, это просто попытка нагрузить лишней работой атакующего. Ну и таких работ вобщем-то можно еще много на его плечи взвалить.
Написать комментарий | ||