python – 在多个子域上共享Django会话的缺点
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在多个子域上共享Django会话的缺点,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1403字,纯文字阅读大概需要3分钟。
内容图文
我使用Sites Framework构建了一个Django站点,并在不同的子域上有四个站点.让我们称之为one.mydomain.com; two.mydomain.com …等
其中三个网站是产品网站,一个是商店.我希望能够跨站点共享会话,以便用户在从任何产品站点移动到商店时不必再次登录.我意识到我可以使用cas来实现单一登录,但我不认为这符合我的所有目的.
我已经阅读了关于子域共享会话的this post和this post,并且共识似乎是一个坏主意.
在我的情况下,我希望用户能够将项目添加到一个子域中的购物车,然后前往购物车结帐.没有共享会话,我无法看到这样做的方法.用户还应该能够从其他产品站点添加到他们的购物车中,当退房时会看到来自one.mydomain.com的产品,来自two.mydomain.com等的产品.
所以我的问题是为什么除了潜在的冲突之外,分享会议是一个坏主意?假设我确保发生(并且应该发生)的唯一冲突是用户登录信息.
我的设置为所有网站共享了SECRET_KEY,并且SESSION_COOKIE_DOMAIN =’.mydomain.com’.这个设置是否存在严重的安全缺陷?
谢谢./w
解决方法:
在我看来,当你不控制特定域的所有子域时,这是一个安全漏洞.例如,您有one.mydomain.com和two.mydomain.com,但浏览器会将您的cookie也提供给名为bad.mydomain.com的网站,因为您的设置有SESSION_COOKIE_DOMAIN =’.mydomain.com’.
如果将开发环境保留为子域之一(例如dev.mydomain.com),则会发生另一个潜在的漏洞.如果是这样的话,你就不会被孤立.
就我研究过的主题而言,似乎最坏的情况会将你的cookie发给流氓子域,所以有人可能会使用这个cookie劫持一个真正的会话.
此时我正在进一步研究如何以更好的方式隔离不同的子域(由相同的Django实例控制),但似乎除了重写SessionMiddleware之外没有真正的方法.
内容总结
以上是互联网集市为您收集整理的python – 在多个子域上共享Django会话的缺点全部内容,希望文章能够帮你解决python – 在多个子域上共享Django会话的缺点所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。