我使用了很多PHP脚本,每个文件中都有数据库信息,包括数据库名称和密码。
我想保护这条信息,以确保没有人可以访问。
信息可以存储在一个单独的文件中,然后在需要时由PHP脚本读取。
我的问题是 - 我在哪里存储,如何以及如何防止未经授权访问该文件?我也愿意接受其他建议,以最佳方式保护密码。
答案 0 :(得分:2)
可能有更好的解决方案,但我将我的存储作为apache环境启动的一部分(只能在服务器上以root身份读取)。如果您使用的是其他服务器技术,则可以执行相同操作,也可以使用某些模拟功能。
#site.example.com
Include includes/credentials/site.conf
#includes/credentials/site.conf
<Directory /srv/www/html>
SetEnv DB_HOST "server"
SetEnv DB_USER "user"
SetEnv DB_PASS "passwd"
</Directory>
这也允许您控制每个目录的“凭据”,如果这有助于您。
在php中,您可以使用以下内容进行连接:
$pdo = new PDO("mysql:host=$_SERVER[DB_HOST]", $_SERVER['DB_USER'],
$_SERVER['DB_PASS']);
编辑:当您想要连接到您自己的mysql实例之类的其他内容时,这也使您可以灵活地更改凭据。如果您可以控制(可能是首选),您可以使用.htaccess
覆盖或更改环境。
答案 1 :(得分:0)
从维护的角度来看,在您的业务文件中包含DB Info非常危险。如果您将网站移动到新服务器,请考虑您必须完成的工作量。
我建议使用Data Access Object Pattern
现在,在这个DAO类的任何文件夹中,放一个简单的index.html,在访问时显示一个空白页面。 Joomla根据提供的rationale使用此方法。