【问题标题】:Can Flask session data be altered by users (threat actors)?Flask 会话数据可以被用户(威胁参与者)更改吗?
【发布时间】:2019-09-22 17:00:10
【问题描述】:

watched a video 的一个人解码了一个 Flask 会话并访问数据,我认为之前有人说过不要在 Sessions 中存储秘密,但是如果我想存储一个角色怎么办,比如"admin": False 它授予 UI访问前端管理按钮

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

用户是否能够完全更改会话数据并覆盖服务器设置?

"admin": True # uh oh

【问题讨论】:

    标签: python session flask


    【解决方案1】:

    尽管知道如何解码 base64 的任何人都可以看到 Flask 会话内容,但用户不能简单地通过设置所需值并将它们放回会话中的 base64 编码来修改其内容,因为您可以在 @ 处听到完整性签名987654321@。

    签名本身是根据会话内容和仅在服务器端可见的应用程序机密生成的。所以用户将无法成功篡改会话的内容,因为他不知道应用程序设置中SECRET_KEY中设置的密钥。

    所以回答你的问题:你可以在会话中存储这样的管理员标志,只要你的密钥足够随机 Flask session doc 并且不向任何人透露,它不会对安全构成威胁。

    【讨论】:

      猜你喜欢
      • 2014-06-20
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 2019-05-27
      • 2011-09-12
      相关资源
      最近更新 更多