我正在设计一个 Web 应用程序,这是我的第一个严肃的 Web 应用程序。它会有一些具有不同权限的用户(RBAC/ACL)。可以想象,我有点担心权限管理和安全性
这就是为什么我想知道为什么在 Web 应用程序中,用户通常存储在数据库中而不是数据库用户(例如 Joomla!)。我觉得这是一种不安全的身份验证方法:数据库连接总是使用对 db 具有完全或非常高权限的 db 用户来完成,所以可以做和不能做的事情由 Web 应用程序通过编写 RBAC/ACL 授权来管理层(所以我在数据库中有一堆表,其中包含用户、权限级别等)。
从概念的角度来看,我认为更好的方法是使用更多的数据库用户(每个权限级别至少一个,或者每个 Web 应用程序的用户更好)以保护数据库中的数据(如果我存在安全漏洞并且攻击者发现了数据库的连接信息,他的权限将受到被黑用户帐户权限的限制)。
我看到这种方法实施起来相当笨拙,但另一方面它更安全。
为什么不使用这种方法?这只是为了方便起见,还是在安全性和易于编码之间寻求正确的权衡?或者,也许我只是把两个不同的东西(数据库和应用程序用户)混在一起,这意味着两个不同的范围。
抱歉,如果这个问题很愚蠢,但是在学习时您会了解数据库用户和权限,并且当您看到真正的软件时(显然)是以不同的方式完成的。
谢谢!