gpt4 book ai didi

python - 与 flask 的服务器端 session ?

转载 作者:太空宇宙 更新时间:2023-11-04 07:19:32 25 4
gpt4 key购买 nike

在试用 Django 之后,我对客户端 session 感到惊讶。是什么阻止用户重播旧值?如果我现在注销,我的 session 可以在一个月后重播。

我想为每个 session 提供 CSRF 保护(尤其是 login and logout )。另外,我想在服务器端设置/取消设置 session ,这样旧的 session cookie 就无效了。我希望它与消息闪烁的东西兼容。

什么实现可以满足所有这三个需求?

最佳答案

Flask session 有一个内置的到期日期,以加密方式强制执行。值过期后,客户端无法重播 session 值。

您可以通过设置 PERMANENT_SESSION_LIFETIME configuration option 来设置最大年龄 session 有效性.默认值为 31 天。

您可以将此值设置得更低;默认情况下,Flask 会在每次请求时刷新 cookie 时间戳,这意味着只要用户继续访问,cookie 就会不断刷新。将 PERMANENT_SESSION_LIFETIME 设置为 1 小时,如果用户在一小时或更长时间内未访问您的服务器, session 将自动过期。

如果您好奇的话,可以使用来自 itsdangerous projectURLSafeTimedSerializer 对 session 进行序列化和签名。 .

请注意,登录信息可以使用它自己的超时时间;不要只记录 session 中的用户名,添加上次看到该用户的时间。 session 数据经过加密签名,因此最终用户无法更改 cookie。每次用户返回时,刷新该时间戳。这样您就可以使用户登录过期独立于 session 过期。

关于python - 与 flask 的服务器端 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25137883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com