PHP包含文件扩展名?
有时候人们使用.inc
扩展名,然后做一些服务器配置,以保持.inc
文件不被通过网络浏览器访问。这可能是好的,如果做绝对正确的知识渊博的系统管理员,但有一个更好的办法:那不是应该由网络用户访问应保持你的文档根目录之外的任何文件。一旦这些文件脱离网络,可以说,你可以使用任何你想要的扩展名。 .php
绝对是语法突出显示,普遍理智等的明智选择。
+1,用于防止配置错误的服务器。 – cbednarski 2010-08-02 20:01:10
将.inc文件放在'public_html'上面的目录中怎么办? – ina 2010-08-02 20:28:31
没问题,如果你想这样做。但是,使用'.inc'扩展名没有很好的理由破坏了自然文件关联。 (没有性能优势,正如你上面的评论所要求的那样。) – grossvogel 2010-08-02 20:33:53
Apache可以有时(由于错误或严重的崩溃)担任.php文件为文本(happend给我几次在共享主机)......我想,只要你可以使用任何你想要的扩展,你不要不要将您的文件存储在公用文件夹中。
比方说,你的网站是在/ home /用户/的public_html/
创建另一个文件夹/ home/user中/ lib_php/
有文件:
(1)。与
class one {
//...
}
01 ../lib_php/one.class.php(2).../lib_php/two.function.php与
function two() {
//...
}
,你必须在/的public_html
<?php
include_once('../lib_php/one.class.php');
include_once('../lib_php/two.function.php');
$x=a; $b=two($x); $c=new one; //etc..
或
<?php
require_once('/home/user/lib_php/the.file.php');
这样,你是主要的index.php采取一切预防措施的文件是不能直接到达,但可以通过你的脚本中使用...
我通常将函数放在静态类中并使用__autoload()函数。这样我就不必费心使用includes了,速度损失与通过不必记住包含路径(或发现错别字)而节省的时间相比较小。 – 2010-08-04 18:35:57
我个人的偏好是在文档根什么是PHP文件,以表明它直接发由Web服务器,以及任何这是一个图书馆xecutable是存储在一个平行目录中的文件。公司,以表明它不是直接执行。
我的标准配置是
/home/sites/example.com/html/
- 任何这里是“安全”的揭露,如果PHP失败,并且提供了原代码
/home/sites/example.com/inc/
- 图书馆,带有密码的配置文件(例如,DB数据库连接类证书)等。任何不应该暴露的东西,因为没有理由。
因为你可以将Apache配置为拒绝访问.inc文件并将其放在根目录里面,然后你根据Apache来保证你的安全。如果PHP可能在Apache内发生故障并暴露您的代码,那么.inc块也可能会失败并公开您的代码的内部。
当然,如果Apache的咳嗽遍布整个地板,那么没有理由认为目录遍历保护不会失败,并让别人去做http://example.com/../inc/seekritpasswords.txt。
在某些情况下,您只需接受如果某件事存储在Web服务器上的任何位置,就有可能出现故障可能允许访问原始数据并公开所有信息。你想花费多少时间和精力来防止这种情况取决于你。
我想知道处理/加载方面 - inc文件的处理方式不同吗? – ina 2010-08-02 20:19:27
没有区别。 – jmz 2010-08-02 23:01:42