0
对于我正在编写的插件系统,我需要编写一个数据库API。但是我想限制数据库访问,所以插件看不到其他表格,而不是通过特定功能创建的表格。我将如何启用插件来使用SQL,但不能同时授予它们完全访问权限?限制数据库访问虽然PHP
下面是一些代码,它可能无法正常工作,但它显示了它背后的理念:
class Api_Database {
private $pluginid;
function __construct($pluginid) {
$this->pluginid = $pluginid;
}
function query($sql, $tablename) {
$db = new Sys_Database;
$db->query(str_replace('{table}', $pluginid.$tablename, $sql));
}
}
上午我在这里向正确的方向在想什么?你会如何创建这样一个系统,只有更安全?
我明白了,但那不是问题所在。关键是字符串$ sql中的dat,{table}可能不存在,所以插件跳过整个表替换部分,因此它可以访问属于其他插件的系统表和表。 – superice
你可以为conn创建一个有限的mysql账户! – JoDev
是的,我可以做到这一点,但我正在创建一个应该在其他服务器上运行的软件,这可能无法创建有限的MySQL帐户。 (Webhosting等) – superice