Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Защита PHPSESSID |
Автор: EntityFx 2.10.2010, 11:19 |
Как защититься от замены значения PHPSESSID при котором доступ к сессии может нарушиться. Провёл один тест: создал сессии в двух браузерах. Заменил PHPSESSID из 1 браузера во втором. Теперь я имею доступ к одной сессии в обоих браузерах. Вдруг случайно (?) при замене смогут получить доступ к другой сессии Был 1 вариант защиты: создать в куках значение SECRET=md5(session_id()."string"); При каждом запуске сессии сранивать значение SECRET и md5(session_id()."string"). Если поменяют значение PHPSESSID или SECRET, то должно выкидывать. Пожалуйста, предложите более оптимальный вариант. ![]() |
Автор: ksnk 2.10.2010, 12:58 |
EntityFx, в сессию можно записать информацию, передаваемую браузером - ip адрес, агент броузера, сопутствующий мусор про прокси. при получении Id сессии читать из нее все это и грязно ругаться в некоторых случаях. Надо только представлять себе, что у добропорядочных пользователей: - ip может поменяться в одной и той-же сесии, например, юзер пользуется мобильным устройством и быстро едет. Единственная радость - это не может случатся уж очень часто. - прокси-мусор может поменяться непредсказуемым образом в зависимости от неопределенных причин А недобропорядочные юзеры могут все это подделать. Включая куки. Если информация настолько важна, что стоит возится с защитой - используй https. |
Автор: EntityFx 2.10.2010, 13:14 |
Да, IP как-то не катит. Если используют прокси, либо у нескольких клиентов один внешний IP. |
Автор: EntityFx 2.10.2010, 13:37 |
А если как вариант сделать JavaScipt, который по таймеру смотрит куки и восстанавливает первоначальное состояние? Не, это сильно жёстко. ![]() |