Можно ли пиратить сессионную переменную (не хочу знать как)

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

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

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

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

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

Второе решение требует больше времени для реализации.

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


person Ted Gueniche    schedule 09.08.2010    source источник
comment
Почему ты не хочешь знать, как? Знание того, как что-то делается, необходимо для того, чтобы предотвратить это от людей. Не похоже, что у нас есть полиция мыслей, которая штрафует вас за то, что вы умеете эксплуатировать вещи.   -  person Matti Virkkunen    schedule 10.08.2010
comment
@Matti Он, вероятно, пытался упредить все отрицательные голоса, которые мы здесь не помогаем хакерам, которые приходят всякий раз, когда кто-то задает вопросы такого типа.   -  person Michael Mrozek    schedule 10.08.2010
comment
@Michael Mrozek И я отвечаю на вопросы, за которые проголосовали против, и получаю отрицательные голоса за свой ответ.   -  person rook    schedule 10.08.2010
comment
-1 ты хочешь знать, возможно ли это, но не хочешь знать как? Весь смысл безопасности заключается в проверке гипотезы. Значит ли это, что вы примете полный бредовый ответ и даже не попытаетесь проверить, правда ли это? Это неправильно на очень глубоком уровне.   -  person rook    schedule 10.08.2010


Ответы (6)


Нет, если только:

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

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

person GWW    schedule 09.08.2010
comment
Я никогда не использую cookie. Спасибо за быстрый ответ! - person Ted Gueniche; 10.08.2010
comment
@Lobsterm Вы явно передаете идентификатор сеанса в строке запроса? В противном случае вы используете файлы cookie, осознаете вы это или нет. - person meagar; 10.08.2010

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

person Ast Derek    schedule 09.08.2010

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

person Daniel Vandersluis    schedule 09.08.2010

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

person icco    schedule 09.08.2010

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

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

person cHao    schedule 09.08.2010