1

我正在向一个面向公众的站点添加一些数据库使用,并且我想输入关于存储 mysql 连接信息的最安全方式可能是什么。我想出了几个选择:

首先,我可以将配置存储在另一个目录中,然后设置 PHP 包含路径以查找该目录。其次,我知道有些文件 apache 不会提供给浏览器,我可以使用其中一种类型的文件。第三,我可以将加密文件存储在服务器上,并用 PHP 解密它们。

任何帮助将非常感激。

4

2 回答 2

3

必须将配置存储在 apache 的文档根目录之外

于 2013-04-17T22:47:09.097 回答
2

您可以配置 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() 能够的。

于 2013-04-17T22:48:03.863 回答