Django 如何防止会话被盗?
简单测试:Django 如何防止会话被盗?,django,django-middleware,Django,Django Middleware,简单测试: 在一台计算机上,我登录到站点(https) 我在不同的机器上输入了相同的页面(未登录) 我切换了第二台机器上标题中的会话\u id-来自第一台机器 在第二台机器上,我得到了第一台机器的所有信息——我已登录,可以轻松浏览其数据,等等 如何防止会话(可能还有csrf令牌)被盗? 确保会话密钥不可用。GUID/UUID在这里工作正常(或者更好,散列加密随机数生成器的输出) 确保从未以纯文本形式传输Id(使用SSL) 经常更新会话Id(比如每5分钟左右一次) 通过执行上述操作,攻击者不可能
- 确保会话密钥不可用。GUID/UUID在这里工作正常(或者更好,散列加密随机数生成器的输出)
- 确保从未以纯文本形式传输Id(使用SSL)
- 经常更新会话Id(比如每5分钟左右一次)
频繁更改id意味着攻击者只有很短的时间才能重新开始。保护cookie和签名会话不起作用-我替换密钥会话id并拥有一切。除了在securec Cookie和签名会话中,我不知道如何在注销时删除旧用户会话,因为标准方法不起作用。它们以什么方式“不起作用”?关键是要防止攻击者获取会话id。如果您同时使用它们,则拦截会话id的唯一方法是断开SSL。作为cookie的所有者,您可以看到该值这一事实与此无关,除非您要将其发送给其他人(不要)。关于删除Django中的旧会话,请参阅、clear_expired以及同一页面上的示例,了解如何执行显式注销。@Nips我已经添加了一些说明。这有帮助吗?