Стоит ли полагаться на сеансы? - PullRequest
0 голосов
/ 27 июля 2011

Я создаю платформу для общения и ведения блогов и храню их идентификатор пользователя в сеансе, поэтому я выведу идентификатор сеанса на страницу

Может ли человек редактировать сеанс, чтобы идентифицировать другого пользователя?

Спасибо

Ответы [ 4 ]

2 голосов
/ 27 июля 2011

Это зависит от способа установки используемой вами переменной $_SESSION - проверьте этот связанный вопрос , чтобы получить больше разъяснений.

1 голос
/ 27 июля 2011

Сессия - это просто cookie с идентификатором.

Когда я захожу на ваш сайт, ваш веб-сервер создаст для меня сеанс с идентификатором XA7i9 (просто пример), который мой браузер сохранит в виде файла cookie сеанса. Теперь мой браузер будет отправлять XA7i9 с каждым запросом. Когда вы храните что-то внутри $_SESSION, оно никогда не покинет ваш сервер.

Однако, если я подделываю файл cookie сеанса и могу угадать ваш идентификатор сеанса, скажем, b8a76, ваш веб-сервер может подумать, что я вы. Это зависит от вашей реализации.

Этот вопрос о Stackoverflow может вас заинтересовать.

0 голосов
/ 27 июля 2011

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

0 голосов
/ 27 июля 2011

Пользователь не может редактировать переменные сеанса, если вы не разрешаете ему это делать.

Он мог украсть SESSID другого пользователя

Помните о директиве register_globals для PHP.ini

...