Возможный дубликат:
PHP Может ли клиент когда-либо устанавливать переменные $ _SESSION?
То, что я хотел бы знать, заключается в изменении переменной PHP $ _SESSION на стороне клиента. Если, например, я делаю $_SESSION['username'] = $username;
Может ли кто-то изменить значение переменной $_SESSION['username']
?
PHP – это серверный язык программирования, а суперглобальный $ _SESSION доступен только на сервере. С «нормальными» сеансами php данные, содержащиеся в суперглобале SESSON, передаются между браузером и сервером в файле cookie. Так что технически можно изменить сеанс с помощью Javascript в веб-браузере, изменив файл cookie.
Но, пожалуйста, обратите внимание: любая попытка сделать что-либо подобное, вероятно, является ужасной идеей, и, скорее всего, гораздо более простой способ выполнить все, что вы пытаетесь сделать.
Редактировать: этот вопрос, который я задал, может быть полезен для вас. Вопрос безопасности Codeigniter / PHP
Содержимое суперглобала SESSION не может быть изменено. Это живет на сервере, и у клиента нет доступа к этому.
Однако идентификатор сеанса передается клиенту, так что, когда клиент связывается с сервером, сервер знает, какой сеанс использовать. Это значение может быть изменено ( см. Отзыв Calums для предотвращения этого См. http://php.net/manual/en/session.security.php для информации). Это позволит пользователю использовать сеанс elses (но не изменять значение сеанса).
Не совсем, но вы можете имитировать его с помощью AJAX. Просто напишите php-файл, который изменит значение, а затем вызовите его из AJAX, просто для его выполнения и изменения этого значения.
Надеюсь, это поможет вам.