Как нынче защищают/валидируют сессии (useragent, ip) и нужно ли это вообще?
Можно вроде как записать в них IP - но в век мобильниках, меняющих IP в любое время, как-то не продуктивно выглядит.
Можно ещё сделать что-то вроде md5(session_id() . $_SERVER[HTTP_USER_AGENT]), и тоже записать в сессию. Но некоторые пишут что браузер обновляется так часто, и число с версией там у него может чуть ли ни каждый день обновляться (а кто-нибудь действительно замерял?).
Можно ещё ограничить кол-ом запросов по одной сессионной id, 5 запросов - session_regenerate_id(), но сдаётся мне, что session_regenerate_id несколько для другого изначально планировалась.
Нужно ли это вообще на сегодняшний день? Тырят ли куки с id'шками сессий?
Или быть может у кого их можно вытащить, того и так уже ничего не спасёт?))
Вряд ли внутри одной сессии поменяется и браузер, и IP одновременно.
Поэтому, при ОДНОВРЕМЕННОЙ смене: IP и User-Agent (всё - относительно текущей сессии) - можно смело обрывать все сессии пользователя и заставить его перелогиниться.
Если меняется что-то одно, но не меняется другое и подпись для пакета - ВЕРНА, то мы считаем сессию валидной и ничего не обрываем.
Разумеется, флаги secure и httpOnly для браузерных кук - ставим всегда!
Вряд ли внутри одной сессии поменяется и браузер, и IP одновременно.
Поэтому, при ОДНОВРЕМЕННОЙ смене: IP и User-Agent (всё - относительно текущей сессии) - можно смело обрывать все сессии пользователя и заставить его перелогиниться.
А вот это мне в голову не пришло, гениально!
Кстати на удивление нигде не видел описания такого способа!