【发布时间】:2011-03-29 21:15:33
【问题描述】:
我有一个包含 100 个左右用户的信息数据库。我有 2 个 MySQL 用户有权访问数据库。 root 以及特定的数据库用户“目录”。用户“目录”只有运行 SELECT 语句的权限,没有其他权限。
某些信息对该用户很敏感,我使用 PHP 作为代理在运行任何 SQL 命令之前检测他们是哪个用户,我如何附加每个 SELECT 语句以包含 WHERE id = '$their_id' 其中$their_id 是一个带有 id 的 php 变量。
请注意,用户将能够编写他们的 PHP mysql 命令,我在包含连接信息的 db.php 中定义这些限制。
当joe 不是bob 时,我想防止说用户joe 能够运行SELECT * WHERE id = 'bob' 之类的命令。
编辑:
我目前不扫描任何 MySQL 命令,我只是在 db.php 中为它们创建连接。无论如何我可以制作自己的代理 MySQL 命令并强制他们使用它们,这样他们就必须使用我的命令 mysql_query 而不是默认的 mysql_query 来覆盖我所做的任何处理。
【问题讨论】: