2

在几个框架(symfony/Django)中,您有管理生成器,通常通过 User 表(将用户分配给指定的 Group 表)控制访问。

我很好奇,为什么不简单地使用 MySQL 的实际用户(已经具备选择/读/写访问权限)呢?

4

3 回答 3

1

我想一个原因是,许多 ISP 只为您的 mysql 数据库提供一个用户帐户(无需额外费用),因此,这种方法行不通,因为每个人都拥有相同的特权。

这里的魔力是最小的公分母和尽可能广泛的易于部署,对服务器管理的要求最低。

于 2010-02-08T22:19:29.340 回答
1

另一个没有列出的好理由是 MySQL 用户名/密码以明文形式存储在配置文件中。您的代码中可能存在允许用户读取文本文件的漏洞,然后可以立即访问黑客而无需破坏密码哈希。远程访问您的数据库是一种严重的安全隐患,并且被 PCI-DSS 禁止。

另一个很好的理由是,为了添加新帐户或更改密码,您的 Web 应用程序需要 ROOT 访问权限,这是您可以做的最糟糕的事情之一。在许多数据库(包括 mysql)中,这使得黑客很容易将 sql 注入漏洞转化为完整的远程代码执行(例如上传 .php 文件)。

于 2010-02-09T00:21:40.247 回答
0

我想大多数人对让他们的应用程序的 MySQL 用户能够创建和授予新 MySQL 用户权限的能力有点怀疑,特别是在共享托管环境中。这并不难处理,它将所有内容保存在一个数据库表中,并且您可以拥有任何您喜欢的权限。

于 2010-02-08T22:34:58.997 回答