我有一个文件,其中包含敏感数据,我在php中解析如下:
define('__PATHSECRET__', dirname(__ROOT__) . '/secretstuff');
$credFilePath = __PATHSECRET__ . '/credentials.ini';
$credArray = parse_ini_file($credFilePath);
我应该如何设置目录和文件的权限,以便我可以使用上面的代码解析文件,但防止该文件的内容在web浏览器中显示?
- linux服务器 php作为'root'运行
- apache运行为'apache'
- secretstuff目录中唯一的文件是credentials.ini
- 我没有权限修改apache或php设置
我似乎不能得到所有权和权限的正确组合。我要么在parse_ini_file命令上以'permission denied'结束,要么我能够浏览credentials.ini文件的内容。
如果您不限于.ini
扩展名,您可以将其更改为.php
,并将第一行注释为ini-comment和PHP多行注释,最后一行注释为ini-comment和关闭PHP多行注释:
; <?php /*
[section1]
parameter = value
[section2]
parameter.foo = bar
; */
如果您使用浏览器请求此文件,它将允许您使用parse_ini_file()
而只显示;
。
您根本不需要将ini文件放在您的web浏览器下——它可以放在系统上的任何地方。至于将其留在web浏览器下,但阻止其显示,您可以在Apache配置中或使用.htaccess
文件执行此操作,并保留UNIX文件权限:
<Directory "/var/www/secretstuff">
Order allow,deny
Deny from all
</Directory>