我有一个php应用程序,我打算在.ini文件中保留关键设置。但是,我认为可以通过网络访问该文件,那么放置它的“标准位置”在哪里?
答案 0 :(得分:3)
您可以将其存储在文档/ Web根目录之上,或者专门阻止对它的访问。例如,PHP应用程序的常见结构是:
application/
public/
其中public
是网络根目录 - 所以我通常将应用程序配置存储在application/config
,我知道无法访问它。
另一种方法是使用Apache来阻止它:
<!-- Block access to all .ini files -->
<Files ~ "\.ini">
Order deny,allow
Deny from all
</Files>
答案 1 :(得分:1)
&#34;标准场所&#34;是任何不受Apache的目录根影响的地方。例如,您可以将其放在/home/someuser/
或其他地方。
答案 2 :(得分:1)
将.ini文件放在Web根目录之外,或者如果您确实希望将其保留在Web根目录下,请使用.htaccess保护它。
答案 3 :(得分:1)
如果将INI文件放在webroot / docroot中,则可以访问它。
确保无法通过docroot访问该文件是第一步。
答案 4 :(得分:0)
我会诚实地使用数据库。
但是,如果您确实想要使用平面文件(例如.ini),则可以将其放在目录中,并使用.htaccess阻止人们通过浏览器访问它。这样,您仍然可以通过php文件函数访问该文件。
要执行此操作,请在要保护的文件夹中创建名为.htaccess的文件(例如ini /)
然后,在这个文件中输入:
deny from all
现在无法通过浏览器中的网址访问该文件夹。
答案 5 :(得分:0)
将配置放在Web服务器无法读取的目录中,但 对应用程序可读。通常,您有一个Web服务器可读的特定目录,例如“web”,“www”,“public”或“public_html”。确保将其放在该目录下面的目录中。
这样,您的应用程序就可以读取文件:
$cfg = parse_ini_file(
realpath( dirname( __FILE__ ) . '/../' ) . '/config.php'
);
您的网络服务器不知道如何联系它,因此它是安全的。
答案 6 :(得分:0)
一个很好的例子是Zend FW或任何其他php框架。目录结构是:
application/config/config.ini
library/Zend/
public/index.php
可从网站访问公众