在sockjs连接中传递Django会话ID的最佳方法

时间:2014-07-29 03:23:03

标签: django tornado sockjs

现在我有一个Django-tornado-sockjs堆栈,希望能够将会话ID从站点传递到sockjs cnnection。将Django会话ID传递给龙卷风后端最安全的方法是什么?听起来人们建议我将会话ID存储在cookie中,然后在sockjs打开连接时发送数据。但这不安全吗?看起来Sockjs似乎不支持传递仅限http的cookie。

任何替代方案?在某些时候,我只需要接受我将通过HTML或cookie传递加密的会话ID,这是否真的存在危险?

1 个答案:

答案 0 :(得分:1)

我远离安全专家,但AFAIK要求所有身份验证请求使用SSL,这是在安全性很重要时保证安全的基本要求。

我们不使用会话ID,而是在登录时生成auth令牌,将其存储在redis中,redis充当django和sockjs-tornado之间的消息队列,并将其传递到建立sockjs的呈现页面中通过https连接。然后我们的sockjs-tornado进程在redis中检查正确的auth令牌,作为connection event中有效负载的一部分。

我们使用haproxy在所有请求中统一处理SSL,并发送到适当的后端,后端一直运行良好。