Не помешает ли, например, захват сеанса? Если нет, что я могу сделать, чтобы защитить свои php-сессии?
То, что отправлено клиенту, является идентификатором сеанса, а не переменной сеанса. Эти идентификаторы сеансов обычно устанавливаются как файлы cookie в клиенте. Разумеется, если кто-либо получит идентификатор сеанса (например, используя атаку сценариев межсайтового сайта) из браузера или клиента пользователя, он может установить идентификатор сеанса в своем собственном клиенте и выдавать себя за другого пользователя.
Однако переменные сеанса обычно ссылаются на значения в $_SESSION
. См. http://www.php.net/manual/en/function.session-start.php для примера. Эти значения никогда не отправляются по сети клиенту.
Что касается защиты идентификаторов сеансов, я уже объяснил в первом абзаце, что они хранятся как файлы cookie в браузере. В сеансе HTTP куки-файлы передаются между сервером и клиентом в открытом виде. Это уязвимо для подслушивания (например, парень на маршрутизаторе, через который проходят ваши пакеты, может захватывать ваши пакеты и считывать с него идентификатор сеанса). Лучший способ решить эту проблему – вместо этого использовать HTTPS.
Я думаю, это зависит от того, что вы подразумеваете под «пособием по безопасности». Если ваше приложение находится на общем хосте, а ваши данные сеанса хранятся в некотором небезопасном центральном месте, где он может быть открыт для чтения другими пользователями, то да , технически есть некоторые преимущества безопасности для шифрования ваших сеансов. Тем не менее, было бы гораздо лучше использовать ваше время и усилия, чтобы просто написать свой собственный механизм хранения сеанса, чтобы вы не хранили их в незащищенном месте в первую очередь; особенно учитывая, насколько легко сделать шифрование совершенно неправильно и дать себе ложное чувство безопасности.