我正在尝试在Flask应用程序中实现逻辑以防止回复攻击 . 关于问题here,我的想法是设置当用户从系统注销时的当前会话生命周期 . 通常,建议以这种方式设置会话生存期:
@app.before_request
def before_request():
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=10)
但是,我想在用户从系统注销时设置当前会话的生命周期 . 类似下面的代码:
@app.after_request
def app_after_request(response):
response.headers["X-Frame-Options"] = "SAMEORIGIN"
if "__logged_out__" in session and session["__logged_out__"] is True:
session.clear()
response.set_cookie(app.session_cookie_name, '', expires=0)
return response
我还检查了this question,但问题是我正在处理一些机密数据,我必须确保在用户从系统注销后清除会话 . Is there any way to set one session lifetime after creation manually? 或者有什么简单的方法可以使用flask-login来处理这种情况吗?
1 回答
我找到了解决方案 . 我应该简单地使用Flask-KVSession包将会话数据存储在数据库(或任何其他数据存储)中而不是服务器内存中 . 包装网站介绍:
您还需要在数据库中创建一个键值配对表(默认情况下它已命名会话,但您也可以更改名称和架构)并将其指向您的烧瓶应用对象 . 更多信息可以在here找到 .