我试图保护一个包含一些数据库信息的inc文件,我正在使用htaccess来保护该文件。
我想要的是:只允许php脚本获取这些信息并登录到DB。
我的Webroot如下所示:imgWebRoot
我的.htaccess代码如下:
<files sql.cnf>
Order Allow,Deny
Deny from all
allow from indexa.php
</files>
我的php文件:
parse_ini_file("C:Apache24htdocssql.cnf");
echo $_SERVER[‘DB_LOGIN’]; // login
我的sql.cnf文件
SetEnv DB_LOGIN “login”
SetEnv DB_PASSWD “password”
SetEnv DB_DB “my_database”
SetEnv DB_HOST “127.0.0.1”
我的问题是我不能登录到php文件,我不明白为什么?
ImgError
zf.png
由于您使用的是Apache,您可以将变量添加到httpd.conf文件的末尾,如下所示,然后通过引用$_SERVER global:来访问它们
SetEnv VAR_NAME strongpassword123
我认为不需要引用这些价值观。重新启动Apache服务后,您将能够使用$_SERVER['VAR_NAME']
引用您的值。不需要在应用程序逻辑中parse_ini_file
一个单独的文件。
此外,您不应该依赖htaccess来保护凭据。如果您需要将凭据存储在应用程序服务器上的文件中,而不是作为环境变量,则应将其存储在web根的上方。
例如,下面的代码会在名为config的目录中找到一个存储在webroot之上一级的文件。
require("$_SERVER[DOCUMENT_ROOT]/../config/config.php");