2010-07-28 2 views
0

Мне интересно, можно ли изменить/установить/удалить мою переменную сеанса AS A USER.session variable php login realm

Я пересматриваю способ, которым я занимаюсь в царстве входа в PHP. Способ, которым я это делаю сейчас, - это проверить, установлена ​​ли определенная переменная сеанса или нет. Однако это сломается, если кто-то может просто изменить свою переменную сеанса.

ответ

1

Учитывая, что у вас нет метода/формы (непреднамеренно или активно), чтобы позволить пользователю активно изменять эти данные, нет. Они не должны изменять свое имя пользователя и т. Д.

Поскольку данные сеанса хранятся на сервере, да, они будут жестко настроены, чтобы установить это сами. Если register_globals включен, это может быть возможностью, но для этого также потребуются другие обстоятельства.

Но в целом, нет, пользователь не должен изменять данные сеанса, если вы не предоставите им средство.

+0

+1 для создания register_globals. –

+0

Комментарий register_globals на самом деле не имеет смысла. Сам по себе он не помещает ничего в сеанс, у вас должна быть ошибка в вашем приложении, которую вы могли бы просто ввести без 'register_globals'. – Artefacto

+0

Artefacto: «Если register_globals включен, это может быть возможностью, но для этого также потребуются другие обстоятельства». Да register_globals сам по себе не вызовет возможного эксплойта, но если они не всегда правильно определяют свои переменные или проверяют, это потенциально может позволить пользователю использовать его. Это было более или менее то, что я получал с «другими обстоятельствами, чтобы быть правдой». –

0

Нет, у вас есть полный контроль над содержимым сеанса.

Все, что пользователь может сделать, это удалить cookie сеанса, тем самым отделяя себя от заданного сеанса, но он не может изменить его содержимое.

+0

'Все, что пользователь может сделать, это удалить сессию cookie' технически, они могут беспорядочно работать с самим идентификатором сеанса. –

+0

@George Который имел бы точно такой же эффект, кроме катастрофы (или если он принюхивал сессионный файл cookie). – Artefacto

+0

'или если они фыркнули сессионное печенье' очень важное различие, которое, как мне кажется, нужно разъяснить. Следовательно, мой комментарий. –

0

Пользователь не может воздействовать на переменные сеанса, за исключением любой функции, которую вы раскрываете. Переменные сеанса хранятся на сервере и автоматически не отображаются пользователю.

Единственное, что может сделать пользователь, это испорчение идентификатора сеанса.