2024-05-20 05:28:36 发布
网友
我watched a video一个人解码一个Flask会话并访问数据,我想以前说过不在会话中存储秘密,但是如果我想存储一个角色,比如"admin": False,它授予用户界面对前端管理按钮的访问权限,那该怎么办
"admin": False
{% if session.admin %} <button>Delete website</button> {% endif %}
用户是否能够更改会话数据并覆盖服务器设置
"admin": True # uh oh
尽管知道如何解码base64的任何人都可以看到Flask会话内容,但用户不能简单地通过设置所需的值并将它们放回会话中编码的base64来修改其内容,因为您可以在https://youtu.be/mhcnBTDLxCI?t=339听到完整性签名
签名本身是基于会话内容和仅在服务器端可见的app secret生成的。因此,用户将无法成功篡改会话的内容,因为他不知道应用程序设置中SECRET_KEY中设置的密钥
SECRET_KEY
所以回答您的问题:您可以在会话中存储这样的管理标志,只要您的密钥足够随机Flask session doc并且不会向任何人公开,它就不会对安全构成威胁
尽管知道如何解码base64的任何人都可以看到Flask会话内容,但用户不能简单地通过设置所需的值并将它们放回会话中编码的base64来修改其内容,因为您可以在https://youtu.be/mhcnBTDLxCI?t=339听到完整性签名
签名本身是基于会话内容和仅在服务器端可见的app secret生成的。因此,用户将无法成功篡改会话的内容,因为他不知道应用程序设置中
SECRET_KEY
中设置的密钥所以回答您的问题:您可以在会话中存储这样的管理标志,只要您的密钥足够随机Flask session doc并且不会向任何人公开,它就不会对安全构成威胁
相关问题 更多 >
编程相关推荐