1

我一直在想,我正在完成一个网站,我不确定如何保护我的数据库登录名和密码,是否可以通过 php.ini 文件中的 PHP 变量声明这些?有没有更合适的方式?此外,我所有的文档现在都是使用localhost , root , "". 我只想为变量切换这些值,但我不确定在哪里声明这些以保持安全。感谢您的任何回答。

4

3 回答 3

2

@Cthulhu 描述的方法很常见,也适用于 CakePHP 或 Symfony 等框架。

即使您将配置存储在 webroot 中的 .php 文件中,它本身也不会立即成为安全漏洞:如果您的网络服务器配置正确,它将始终使用 PHP 解析该文件,然后发送创建的输出通过 PHP。

无论如何,你最好保护你的服务器作为一个整体。如果您还没有这样做,那么确保您的数据库不接受来自外部世界的连接将是一个不错的起点。下一步是保护您的 webroot 免受其他协议(例如 ftp)的影响。最后,无论如何,防止未经授权的人登录到您的服务器(他们可以在本地连接到数据库)是必须的。

于 2012-11-13T16:46:39.293 回答
1

在 .htaccess 中使用环境变量是另一种安全存储密码的方法。

SetEnv MYSQL_DATABASE_HOSTNAME 主机名

SetEnv MYSQL_DATABASE_USERNAME 用户名

SetEnv MYSQL_DATABASE_PASSWORD 密码

最好使用任何加密和解密方法存储密码。

于 2012-11-13T18:03:31.760 回答
1

你可以制作一个 php,包含

$username = ..
$password = ..
$db_host = ..

等等

然后include_once('database_config.php')在任何你想使用它的地方包含它。如果您愿意,以后可以轻松修改。

此文件可以保存在您网站的 HTML 根目录之外.htaccess,或使用规则进一步保护

于 2012-11-13T16:33:41.683 回答