python - flask_login 有时会混合登录;我以其他人身份登录

标签 python session cookies flask flask-login

我正在使用很棒的 Flask framework创建一个我使用 Flask-login 的网站对于我的用户登录。这通常工作正常,但有时我会看到混合登录的奇怪问题。我们有 3 个 flask 开发服务器在一台机器上运行(在不同的端口上),我们在一个办公室里工作,大约有 10 个人(有一个共享的 ip)。问题是有时一个用户突然以另一个用户身份登录。

我真的无法确定这是何时或在何种情况下发生的。但我也不知道如何调试它。邪恶的根源可能是我们共享互联网连接,还是我们在一台机器上运行多个 flask 开发服务器的问题?

我不知道这是否也发生在我们办公室以外的人身上(我们仍处于测试阶段)。

任何人都可以给我一些关于如何调试它的提示吗?

最佳答案

您很可能正在使用缓存来自 Flask 的(部分)HTTP 回复的网络服务器。这些可能包括静态媒体、生成的媒体、PDF、Office 文件。

错误配置的前端 Web 服务器可能会缓存此类包含媒体和 session cookie(Cookies header )的 HTTP 响应。在愉快地缓存这个响应之后,前端 Web 服务器将它提供给另一个用户。该用户的现有 session cookie 将被缓存的 HTTP 响应中的 session cookie 覆盖。然后,由于 session 切换,用户成为其 HTTP 响应被缓存的用户。

解决方案

  • 修复 session 中间件

  • 在服务器端明确设置无缓存 header

  • 将您的前端 Web 服务器配置为不使用 cookie 缓存响应

Further information in operationssecurity.org .

关于python - flask_login 有时会混合登录;我以其他人身份登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885710/

相关文章:

python - 如何使用Python直播视频流

python - 如何从数据库中收集/排序具有相同类别名称的项目?

ios - 在 iOS 9 的多个 WKWebView 中同步 cookie

firefox - 火狐浏览器中的 Cookie

ruby-on-rails - ArgumentError(无法解析 Cookie header : invalid %-encoding (Req%201008%20-

javascript - django smart_selects 应用程序的问题

python - 如何使用pytest-mock检查单元测试中是否调用了函数?

ruby-on-rails - 使用 Devise 在 Rails 应用程序中有条件地注销

php - 在生产服务器 codeigniter 3.1.2(PHP) session 销毁自动从 facebook 图形 API 重定向?

html - 在 IE 中清空 IMG SRC 触发注销