我watched a video一个人解码 Flask session 并访问数据,我认为之前已经说过不要在 session 中存储 secret ,但是如果我想存储一个角色怎么办,比如 "admin": False
授予对前端管理按钮的 UI 访问权限
{% if session.admin %}
<button>Delete website</button>
{% endif %}
用户是否能够更改 session 数据并覆盖服务器设置?
"admin": True # uh oh
最佳答案
尽管任何知道如何解码 Base64 的人都可以看到 Flask session 内容,但用户不能通过设置所需值并将其放回 session 中的 Base64 编码来简单地修改其内容,因为您可以在 https://youtu.be/mhcnBTDLxCI?t=339 处听到完整性签名。
签名本身是根据 session 内容和应用程序 secret 生成的,仅在服务器端可见。因此,用户将无法成功篡改 session 内容,因为他不知道应用程序设置中 SECRET_KEY
中设置的 key 。
所以回答你的问题:你可以在 session 中存储这样的管理标志,只要你的 key 足够随机 Flask session doc 并且不透露给任何人,它不会对安全构成威胁。
关于python - 用户(威胁参与者)可以更改 Flask session 数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58046070/