我在用着:
from flask import session
@app.route('/')
def main_page():
if session.get('key'):
print ("session exist" + session.get('key'))
else:
print ("could not find session")
session['key'] = '34544646###########'
return render_template('index.html')
我没有安装 Flask-Session 扩展,但这仍然可以正常工作。我试图理解为什么以及何时该扩展对我产生影响。据我所知,默认会话对我来说效果很好。
区别在于会话数据的存储位置。
Flask 的会话是客户端会议。您写入会话的任何数据都会写入 cookie 并发送到客户端进行存储。客户端将在每次请求时将 cookie 发送回服务器,这就是您在会话中写入的数据在后续请求中保持可用的方式。存储在 cookie 中的数据经过加密签名以防止任何篡改。这SECRET_KEY
配置中的设置用于生成签名,因此只要您的密钥保密,客户端会话中的数据就是安全的。注意secure在这种情况下意味着潜在的攻击者无法修改会话中的数据。任何知道如何查看的人仍然可以看到数据,因此您永远不应该在客户端会话中写入敏感信息。
Flask-Session 和 Flask-KVSession 是 Flask 的两个扩展,它们实现服务器端会议。从应用程序的角度来看,这些会话的工作方式与 Flask 本机会话完全相同,但它们将数据存储在服务器中。数据永远不会发送到客户端,因此安全性有所提高。客户端仍然收到签名的 cookie,但 cookie 中的唯一数据是会话ID引用存储数据的服务器中的文件或数据库索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)