【问题标题】:How to securely store credentials per session in Flask如何在 Flask 中安全地存储每个会话的凭据
【发布时间】:2011-09-14 20:21:32
【问题描述】:

我的本​​地网络上有一个 Flask 应用程序,它连接到邮件服务器和 Web 服务。这三个都使用相同的 LDAP 身份验证源,我希望避免在应用程序每次连接到这些接口之一时要求用户提供相同的凭据。

在会话的生命周期内保存用户凭据以便与其他接口共享的最安全方法是什么?

我发现的一个选项是Flask-KVSession,它在服务器端存储会话变量。


更新:在测试中,我尝试在用户登录时将凭据放入 app.config 的字典中。这似乎是个坏主意,但我没有想通了为什么。我知道它为活动会话的凭据创建了消失的可能性,但是很容易查看它们是否存在并在它们不存在时再次提示它们。另外,它们不会像服务器端会话中的变量那样被写入文件系统。

我想知道我是否遗漏了这种方法的任何明显问题。

【问题讨论】:

    标签: authentication ldap flask


    【解决方案1】:

    我肯定会使用Flask-KVSession 之类的东西将用户的凭据存储在服务器端会话中(为此+1 - 我以前没有见过那个扩展)。这将确保您不会在 cookie 中来回传递用户的凭据。我会添加Flask-Login 来处理会话管理中更有趣的部分,而不必自己发现所有问题。

    将凭据放入app.config 不是一个好主意,因为app.config 不是LocalProxy 因此不是线程安全的。您不能保证您针对一个请求对app.config 所做的更改不会最终影响其他请求。 (您可以阅读有关上下文本地人herehere 的更多信息。

    【讨论】:

    • 感谢您的解释。我担心密码会随服务器上的会话一起保存,但可以使用内存存储,所以这甚至不是问题。
    • 如何在 Flask-KVSession 之上使用 Flask-Login?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2012-10-05
    • 1970-01-01
    相关资源
    最近更新 更多