如何阻止我的apache2服务器服务于missile_launch_codes.ini?

时间:2011-01-13 13:02:29

标签: php security apache

我知道一个解决方案是将.ini文件放在webroot之外,但我希望将配置文件作为我的webapp源代码树的一部分。

由于我想在其中放入数据库密码,因此我需要确保无法通过输入www.drstrangelove.com/missile_codes.ini来访问它。

我想相信有一个apache配置设置,但我不知道它是什么或在谷歌输入什么来找出。

3 个答案:

答案 0 :(得分:3)

您可以使用.htaccess:

<Files "*.ini">
order deny,allow
deny from all
</Files>

或(如果您只想要单个.ini文件):将*替换为文件名。

答案 1 :(得分:2)

虽然Tobiask的回答可以满足您的需求,但我认为更好的解决方案是将.ini文件保留在htdocs(或www)目录之外,这样首先无法通过apache传递它。

答案 2 :(得分:1)

如果您无法使用.htaccess文件,您可以随时作弊: 用config.ini.php;

重命名你的ini文件

把它放在第一行:

#<?php exit; ?>
user=username
pass=secret

这样,如果你试图通过webserver调用ini文件,那么将执行PHP代码,否则函数parse_ini_file将跳过第一行,因为它被注释(“#”)

希望这个帮助