可能重复:
Is it ever ok to store password in plain text in a php variable or php constant?
我过去常常将db凭据存储在PHP文件中,如下所示:
<?php
define('HOST', 'localhost');
define('USER', 'db_user');
define('PASS', 'user_pass');
define('DB', 'database');
?>我使用常量,但在最近的一个项目中,一个PHP程序员说将db凭据存储到常量中是不安全的。我还是不明白。我试着找些信息,但没人对此一言不发。
将db凭据存储到PHP常量中是否存在安全风险?
发布于 2012-01-30 16:27:21
唯一的风险是如果您在文档根下有这些定义。在这种情况下,如果服务器配置出现问题,而且人们可以看到PHP代码,则会公开常量(因此是数据库凭据)。
最安全的方法(据我所知)是将凭据作为仅限于root的服务器环境的一部分。然后,开发人员可以使用_SERVER['db_user']等。这可能更安全,因为访问实际DB凭据的人员更加有限。它还为您提供了根据服务器使用不同凭据的灵活性(例如,开发与生产)。但是,您可以看到phpinfo()、var_dump($_SERVER)等所有服务器环境变量,因此您必须注意不要上传这些内容。
发布于 2012-01-30 16:25:25
将db凭据存储到PHP常数中是否存在安全风险?
存储重要信息总是存在一些风险,比如数据库的用户名和密码。
但我无法想象,使用常量比使用变量更有安全风险。
然而,一个潜在的风险是,配置是用代码编写的。所以它并不是静态的。使用不需要自己执行的配置文件可能更安全。
https://stackoverflow.com/questions/9067088
复制相似问题