我正在向一个面向公众的站点添加一些数据库使用,并且我想输入关于存储 mysql 连接信息的最安全方式可能是什么。我想出了几个选择:
首先,我可以将配置存储在另一个目录中,然后设置 PHP 包含路径以查找该目录。其次,我知道有些文件 apache 不会提供给浏览器,我可以使用其中一种类型的文件。第三,我可以将加密文件存储在服务器上,并用 PHP 解密它们。
任何帮助将非常感激。
必须将配置存储在 apache 的文档根目录之外
您可以配置 apache 以禁止任何带有 htaccess 的文件。
在 config 文件夹中添加.htaccess
以下内容
order allow,deny
deny from all
如果您不想将 .htaccess 用作@johua k,请提及,而不是添加
<Directory /home/www/public/config>
order allow,deny
deny from all
</Directory>
到您的 apache 配置。
这将拒绝将该文件夹中的任何文件提供给任何人,这很好,因为 php 不关心 htaccess 你可以
include('config/db.php')
如果你正确配置了你的 php 脚本,它们永远不会以纯文本形式出现。
所以像这样的文件
define('mysql_password', 'pass')
永远不会显示该文本。
如果您担心共享主机环境和其他用户有权读取此文件,那么您应该评估 linux 安装和主机的安全性。其他用户应该对您的文件有任何浏览权限。从标记为 php 的 web 文件中永远不应返回源代码。
您可以明确告诉 apache 永远不要提供文件,因此它们只能是 include() 或 require() 能够的。