Может ли пользователь изменить значение $ _SESSION в PHP?

это пересекает мой разум, и мне интересно, возможно ли, насколько безопасно хранить информацию в переменной $ _SESSION PHP?

Сохранение переменных в переменной $ _SESSION имеет два потенциала для «отсутствия безопасности».

  • Первый, как описано в другом ответе, называется «фиксация сеанса». Идея здесь заключается в том, что, поскольку идентификатор сеанса хранится в файле cookie, идентификатор может быть изменен на идентификатор другого пользователя. Это не проблема, если пользователь получает новый идентификатор каждый отдельный сеанс, поэтому очень сложно найти идентификатор текущего рабочего сеанса и захватить его.
  • Второй полностью зависит от вашего кода. Если ваш код теряет значения секретной информации, хранящейся в $ _SESSION, тогда она небезопасна. Если ваш код позволяет пользователю контролировать значения этой информации, он небезопасен. В противном случае, если что-то находится в переменной $ _SESSION, и ваш код никогда не позволяет пользователю видеть его или записывать в него, тогда он безопасен.

Работа PHP-сессии, сохраняя PHPSESSID cookie PHPSESSID на компьютере конечного пользователя, который действует как ключ доступа для информации о сеансе на сервере. Это значение cookie представляет собой хэшированную строку (безопасность которой зависит от ваших настроек PHP), которая используется для привязки конкретного браузера к определенным заданным вами значениям сеанса.

Эта строка выглядит примерно так: b420803490a9f0fe8d6a80657fec3160 . Таким образом, конечный пользователь может изменить эту строку, но тогда их сеанс станет недействительным, поскольку он почти наверняка не будет соответствовать тому, который хранится PHP, и у них не будет доступа к данным.

Существует риск того, что кто-то из PHPSESSID подвергнется риску, и люди используют это, чтобы захватить чужую сессию.

$_SESSION полностью хранится на сервере, поэтому пользователь не может ее модифицировать. Тем не менее, это возможно для взлома сеанса, когда пользователь подключается к сеансу другого пользователя.

Данные сеанса хранятся на сервере.

Если на клиентском компьютере меньше защищенных $_COOKIES , $_SESSION хранится на сервере. Это местоположение определяется с помощью session.save_path php.ini. Однако есть еще проблемы с безопасностью, такие как фиксация сеанса