使用htaccess传递DB凭据



我试图保护一个包含一些数据库信息的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");

相关内容

  • 没有找到相关文章

最新更新