我正在创建一个数据库连接类,它将访问config.php中定义的变量或常量。但是,如果我要创建一个主题和一个插件引擎,我怎么只允许MySQLi连接类访问配置而不允许插件/主题访问信息破坏网站的安全性&用户。
以前,我只是将主机,用户名,密码和数据库定义为配置中的常量,然后将配置包含在包含所有核心网站文件的文件中,例如核心功能文件,数据库连接等 - 我相信这是像Wordpress等CMS这样的受欢迎程度吗?如果没有,请纠正我。
如果我在数据库类中包含配置,但随后在网站中包含数据库类,则可以通过主题和插件中的自定义代码访问配置 - 这绝不会发生。
我该怎么做呢?我想不出任何其他方式。
谢谢, 基隆
答案 0 :(得分:1)
我怎么只允许MySQLi连接类访问配置
你没有。相反,您应该为您的MySQLi包装类提供所需的所有设置。即:
class MySQLiWrapper {
public function __construct($server, $username, $password, $database) {..}
}
至于内部安全。 PHP代码没有沙盒,任何脚本都可以对任何文件执行fopen
并读取其内容。想想你想要如何处理安全问题。