Можно ли изменить переменную $ _SESSION на стороне клиента?

Возможный дубликат:
PHP Может ли клиент когда-либо устанавливать переменные $ _SESSION?

То, что я хотел бы знать, заключается в изменении переменной PHP $ _SESSION на стороне клиента. Если, например, я делаю $_SESSION['username'] = $username; Может ли кто-то изменить значение переменной $_SESSION['username'] ?

Related of "Можно ли изменить переменную $ _SESSION на стороне клиента?"

PHP – это серверный язык программирования, а суперглобальный $ _SESSION доступен только на сервере. С «нормальными» сеансами php данные, содержащиеся в суперглобале SESSON, передаются между браузером и сервером в файле cookie. Так что технически можно изменить сеанс с помощью Javascript в веб-браузере, изменив файл cookie.

Но, пожалуйста, обратите внимание: любая попытка сделать что-либо подобное, вероятно, является ужасной идеей, и, скорее всего, гораздо более простой способ выполнить все, что вы пытаетесь сделать.

Редактировать: этот вопрос, который я задал, может быть полезен для вас. Вопрос безопасности Codeigniter / PHP

Содержимое суперглобала SESSION не может быть изменено. Это живет на сервере, и у клиента нет доступа к этому.

Однако идентификатор сеанса передается клиенту, так что, когда клиент связывается с сервером, сервер знает, какой сеанс использовать. Это значение может быть изменено ( см. Отзыв Calums для предотвращения этого См. http://php.net/manual/en/session.security.php для информации). Это позволит пользователю использовать сеанс elses (но не изменять значение сеанса).

Не совсем, но вы можете имитировать его с помощью AJAX. Просто напишите php-файл, который изменит значение, а затем вызовите его из AJAX, просто для его выполнения и изменения этого значения.

Надеюсь, это поможет вам.