繁体   English   中英

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

[英]Are php sessions secure enough for a multi-tenant system

我正在创建一个多租户系统(第一次)。 我对该系统有些担心,因为该应用程序的所有用户详细信息都将保留在数据库的同一表中。 当用户登录时,我计划设置一个包含其clientid$_SESSION变量,并使用它来访问其所有信息(数据库中的所有信息都将具有clientid列)。

我认为这是使用PHP和MySQL处理多租户系统的唯一解决方案。 这足够安全吗? 还是应该为每个客户端选择单独的数据库。 我担心如果客户可以将$_SESSION['clientid']从'12'更改为'45',这意味着他们随后将可以访问其他人的数据。

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

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

会话cookie就像

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

会话数据存储在服务器端,因此用户将无法(轻松*)将其clientid更改为其他人。 我说很容易,因为用户可以尝试强行使用其PHPSESSID值并获得对另一个服务器会话的访问权限(但这需要很长的时间)。

也可以使用其他策略(例如XSS攻击)来发现其他服务器会话。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM