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

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

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

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

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

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

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

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

Ответ 1

Нет, если:

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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