通过htaccess传递数据库凭证

问题描述 投票:0回答:1

我正在尝试保护包含某些数据库信息的inc文件,我正在使用htacess保护该文件。

我想要的是以下内容:仅允许php脚本获取这些信息以登录到数据库。

我的Webroot看起来像这样:imgWebRoot

我的.htacess代码看起来像这样:

<files sql.cnf>
Order Allow,Deny
Deny from all
allow from indexa.php
</files>

我的php文件:

   parse_ini_file("C:\Apache24\htdocs\sql.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

php database apache security
1个回答
0
投票

由于使用的是Apache,因此可以如下所示将变量添加到httpd.conf文件的末尾,然后通过引用$ _SERVER全局变量来访问它们:

SetEnv VAR_NAME strongpassword123

我不认为需要引用这些值。重新启动Apache服务后,您将可以使用$_SERVER['VAR_NAME']来引用您的值。无需在应用程序逻辑中parse_ini_file一个单独的文件。

此外,您不应依赖htaccess来保护凭据。如果您需要将凭据存储在应用服务器上的文件中,而不是作为环境变量存储,则应将其存储在Web根目录之上。

例如,下面的代码将找到一个文件,该文件存储在Webroot上一级名为config的目录中。

require("$_SERVER[DOCUMENT_ROOT]/../config/config.php");
© www.soinside.com 2019 - 2024. All rights reserved.