2011-01-13 124 views
0

我知道一个解决方案是将.ini文件放在webroot之外,但我想要一个配置文件作为我的webapp的源代码树的一部分。如何阻止我的apache2服务器提供missile_launch_codes.ini服务?

因为我希望把数据库密码的话,我需要确保从键入其无法访问www.drstrangelove.com/missile_codes.ini

我想beleive有一个Apache的配置设置的这一点,但我不知道它是什么或者在google上输入什么来找出答案。

回答

3

可以使用的.htaccess为:

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

或者(如果你只想要一个.ini文件)的文件名取代*。

2

尽管Tobiask的回答让你有所需要,但我认为更好的解决方案是将.ini文件保存在你的htdocs(或www)目录之外,这样它就不能由apache首先提供。

+0

如果.htacces的东西总是有效的,那有什么风险? – Matt 2011-01-13 13:22:06

1

如果你不能使用.htaccess文件,你总是可以作弊: 重命名你的ini文件,如config.ini.php;

将这个在第一行:

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

这样,如果你尝试调用通过网络服务器ini文件,PHP代码会被执行,否则功能parse_ini_file将跳过第一线因为它被评论(“#”)

希望得到这个帮助