Могут ли данные сеанса Flask быть изменены пользователями (субъектами угрозы)? - PullRequest
1 голос
/ 22 сентября 2019

Я смотрел видео человека, декодирующего сеанс Flask и получающего доступ к данным, и я думаю, что раньше было сказано не хранить секреты в сеансах, а что, если я хочу сохранить роль, скажем,"admin": False, который предоставляет пользовательскому интерфейсу доступ к кнопкам интерфейса администратора

{% if session.admin %}
    <button>Delete website</button>
{% endif %}

Могут ли пользователи вообще изменять данные сеанса и отменять настройки сервера?

"admin": True # uh oh

1 Ответ

1 голос
/ 22 сентября 2019

Хотя содержимое сеанса Flask может видеть любой, кто знает, как декодировать base64, пользователь не может просто изменить его содержимое, задав желаемые значения и поместив их обратно в кодировку base64 в сеансе из-за сигнатуры целостности, о которой вы можете услышать на https://youtu.be/mhcnBTDLxCI?t=339.

Сама подпись генерируется на основе содержимого сеанса и секрета приложения, который виден только на стороне сервера.Таким образом, пользователь не сможет успешно вмешиваться в содержимое сеанса, поскольку он не знает ключ, установленный в SECRET_KEY в настройках приложения.

Итак, отвечая на ваш вопрос: вы можете сохранить такой флаг администратора в сеансеи это не будет угрозой безопасности, если ваш секретный ключ достаточно случайный Документ сеанса Flask и не разглашается никому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...