Ari*_*Ari 5 python session flask
我观看了一个人解码 Flask 会话并访问数据的视频,我认为之前已经说过不要在会话中存储机密,但是如果我想存储一个角色(例如"admin": False授予前端管理按钮的 UI 访问权限)怎么办?
{% if session.admin %}
<button>Delete website</button>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
用户是否能够更改会话数据并覆盖服务器设置?
"admin": True # uh oh
Run Code Online (Sandbox Code Playgroud)
尽管知道如何解码 Base64 的任何人都可以看到 Flask 会话内容,但用户不能通过设置所需值并将其放回会话中的 Base64 编码来简单地修改其内容,因为您可以在https://上听到完整性签名youtu.be/mhcnBTDLxCI?t=339。
签名本身是根据会话内容和应用程序机密生成的,仅在服务器端可见。因此,用户将无法成功篡改会话的内容,因为他不知道SECRET_KEY应用程序设置中设置的密钥。
所以回答你的问题:你可以在会话中存储这样的管理标志,只要你的密钥是足够随机的Flask 会话文档并且不向任何人透露,它不会对安全构成威胁。