Возможно ли "пиратствовать" переменную сеанса (я не хочу знать, как)
В настоящее время я занимаюсь веб-сайтом в 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).