Я не вижу неизбежной проблемы. если это важно, убедитесь, что данные отправляются через https, чтобы люди, перехватывающие сетевой трафик, не могли вмешиваться (как предложил Стефан Май). в противном случае это выглядит нормально - пока никто не крадет сеансовые файлы cookie ваших пользователей.
метод decezes - это просто еще один стиль кодирования. само по себе оно не повышает безопасность, но может помешать небрежным программистам совершать ошибки в виде:
if (checkIfLoggedIn()) {
doPrivateThing();
}
doAnotherPrivateThing(); // bug: the programmer should have
// put that into the if-conditional
в противном случае убедитесь, что идентификатор сеанса хранится в файле cookie и никогда не передается прозрачно через URL! В настоящее время я не уверен насчет настроек по умолчанию в php.ini, но раньше он автоматически перезаписывал URL-адреса, если cookie-файлы отключены. лучше проверь это.
Насколько я помню, ini-опция session.use_only_cookies
(должна быть включена)
php / сеанс безопасности
обновление:
«Просто подумав, может быть, кто-то может просто создать сеанс на своем сайте»
нет, это не сработает. сеансы создаются при session_start();
(или иногда автоматически). $_SESSION['id']
не имеет ничего общего с session_id();
, это просто некоторая переменная. хотя это не очень хорошо названо, потому что другие действительно могут запутать это (ремонтопригодность!). лучше назовите это $_SESSION['isUserLoggedIn'];
или что-то в этом роде.