我们有很多用Django编写的内部网项目。随着项目的发展,auth总是令人痛苦和重复。
E.g。用户需要登录三个内部系统:
基本上他必须在三个系统上创建三个帐户。所以我想如果可以跨三个django项目共享MySQL表auth_user
和django_session
(使用MySQL联合表引擎),可以共享登录会话和信息。因此,创建一次帐户并登录一个并使用所有三个系统。
安全吗?在实践中做过相似的人吗?
答案 0 :(得分:2)
只要每个项目的维护者都知道这种架构,共享auth和会话表是一个非常可接受的解决方案。
需要注意的一些问题:
由于所有三个项目都可以访问数据库,因此从安全角度来看,最好将它们视为单个项目/实体。有些数据可能会通过会话从一个项目泄漏到另一个项目,并暴露在不应该的地方。
此外,可能会出现一些安全问题:例如,如果两个项目无意中使用相同的变量名称来存储冲突数据,被一个项目视为安全但另一个项目不安全,则用户可能会注入被认为是安全的恶意数据。 / p>
但是如果你有一个由多个程序员维护的单个项目,这些事情可能会发生。所以,只要你确定这些不是你的项目的问题,你应该没问题。