加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php会话对于多租户系统是否足够安全

发布时间:2020-12-13 16:20:10 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个多租户系统(第一次).我有点担心这个系统,因为应用程序的所有用户详细信息都将保存在数据库的同一个表中.当用户登录时,我计划设置一个包含其clientid的$_SESSION变量,并使用它来访问所有信息(数据库中的所有信息都将包含clientid列). 我认为这
我正在创建一个多租户系统(第一次).我有点担心这个系统,因为应用程序的所有用户详细信息都将保存在数据库的同一个表中.当用户登录时,我计划设置一个包含其clientid的$_SESSION变量,并使用它来访问所有信息(数据库中的所有信息都将包含clientid列).

我认为这是使用PHP& amp处理多租户系统的唯一解决方案. MySQL的.这足够安全吗?或者我应该为每个客户选择单独的数据库.我担心如果客户可以改变他们的$_SESSION [‘clientid’]说从’12’到’45’这意味着他们可以访问其他人的数据.

有更好的方法吗?或者解决方案是处理多租户系统中访问数据(PHP和MySQL)的唯一方法吗?

解决方法

PHP通过使用会话来跟踪谁是谁,而会话又使用cookie来识别服务器数据.

会话cookie就像是

PHPSESSID=0f0f0f0f0f0f0f0f0f... (32 hexits,usually)

会话数据存储在服务器端,因此用户将无法(轻松*)将其clientid更改为其他人.我说很容易,因为用户可以尝试brute-force their PHPSESSID value并获得对另一个服务器会话的访问权限(但这应该花费一段时间).

也可以使用其他策略(如XSS exploits)来发现其他服务器会话.

您可以搜索StackOverflow以获取更多信息:

> Session Fixation
> Session Hijacking
> Cross-Site Scripting

为了安全起见,请确保在没有事先清洁的情况下(通过使用HTMLPurifier或htmlspecialchars())输出用户输入,并在登录/注销或升级用户权限时调用session_regenerate_id().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读