保护Mysql密码

时间:2012-11-13 16:32:06

标签: php mysql

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

3 个答案:

答案 0 :(得分:2)

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

即使您将配置存储在webroot中的.php文件中,它本身也不会是一个直接的安全漏洞:如果您的Web服务器配置正确,它将始终使用PHP解析该文件然后发送PHP创建的输出。

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

答案 1 :(得分:1)

你可以创建一个包含

的php
$username = ..
$password = ..
$db_host = ..

然后使用include_once('database_config.php')将其包含在您想要使用的任何位置。如果您愿意,可以在以后轻松修改。

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

答案 2 :(得分:1)

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

SetEnv MYSQL_DATABASE_HOSTNAME主机名

SetEnv MYSQL_DATABASE_USERNAME用户名

SetEnv MYSQL_DATABASE_PASSWORD密码

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