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