Возможно ли «пиратствовать» переменную сеанса (я не хочу знать, как)

В настоящее время я делаю сайт в php, мы используем переменную Session для хранения уровня разрешений для каждого пользователя.

Например, если кто-либо из вас пойдет на сайт, вы автоматически получите переменную сеанса со значением «член».

Я спрашиваю: возможно ли, чтобы злоумышленник вышел на веб-сайт и изменил значение переменной сеанса для «admin» вместо «member»,

Я не спрашиваю, как, если это возможно, и если да, то какой особый доступ понадобится злоумышленнику (например: доступ к коду, ….)

У меня есть альтернативное решение, которое должно было бы заменить значение разрешения токеном, который истечет с течением времени.

Второе решение – путь дольше.

Спасибо за вашу помощь!

Нет, если:

  • Злоумышленник имел доступ к хранилищу переменных сеанса (обычно это файловая система сервера, но также может быть, например, базой данных)
  • Атакующий перехватил cookie сеанса более привилегированного пользователя.
  • Атакующий успешно зафиксировал сеанс более привилегированного пользователя (см. Атаки на фиксацию сеанса ).

Из того, что вы описали, я предполагаю, что вы не храните разрешение в cookie. Таким образом, единственный способ получить доступ – это угадать / переборщить идентификатор сеанса администраторов или использовать некоторую межсайтовую атаку сценариев. Если ваш идентификатор сеанса достаточно длинный, первый метод будет очень трудно выполнить.

Более высокий риск исходит от злоумышленника, крадущего активную сессию, вы можете найти здесь:

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

Это зависит от того, как вы храните сеанс. Если он находится в URL-адресе, то да. Если это в cookie, то, может быть.

Если в вашем приложении есть недостатки безопасности, кто-то не может просто обновлять и изменять переменные сеанса – они хранятся на сервере, и клиент никогда не имеет прямого доступа к ним.

Однако они могут изменить свой идентификатор сеанса, выбрав URL-адрес, например http://your.site.com/?PHPSESSID=2342f24502ade525 . Потенциал для злоупотреблений существует двояко: (1) если они каким-то образом знали идентификатор сеанса входа в систему, идентификатор сеанса позволял им выдавать себя за этого пользователя, предоставляя им весь доступ, который имеет пользователь; и (2) Если они могут обмануть кого-то, перейдя к URL-адресу, к которому подключен идентификатор сеанса, и этот человек входит в систему, теперь он знает идентификатор сеанса пользователя (потому что он предоставил его!), и мы вернулись к (1 ).