python - 用户(威胁参与者)可以更改 Flask session 数据吗?

标签 python session flask

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/

相关文章:

flask - Flask-Login 是否支持角色?

python - pandas 在包含间隔的列中查找值

php - 设置 WooCommerce 购物车到期

java - 仅获取 1 个随机行的值并将这些值设置为一个类

带有 AWS DocumentDB 的 Flask

python - 告诉 Flask 使用哪个虚拟环境

python - Pygame - 是否可以根据时间更改背景图像?

python - 如何避免立方和绝对值对数的数值溢出?

python - 如何让Django返回一个模板,但在返回模板后继续执行一个进程?

javascript - 存储在 Session Javascript 中后获取 DOM 事件