如果htaccess将所有内容重定向到index.php,将lib文件保存在公共目录中是否安全?

时间:2011-06-09 22:02:12

标签: php security .htaccess

如果htaccess将所有内容重定向到index.php,将lib文件保存在公共目录中是否安全?

htaccess会无法重定向吗?

是否有任何循环漏洞可以让你到达目录树的其余部分?

3 个答案:

答案 0 :(得分:2)

如果Web服务器决定停止解析它们,

.htaccess可能会失败。可能会通过Apache AllowOverride指令启用<Directory>,并且您的网站会被移动到其他位置并且<Directory>不会更新。所以现在突然.htaccess关闭,所有文件都可用。

如果您不想错误地提供某些内容,请不要将其放在您网站的文档根目录中。 PHP不关心Web服务器的文档根目录,并且可以访问Web服务器具有读取权限的系统上的任何位置的文件。因此,将“重要”文件保存在其他位置,这样可以最大限度地减少意外提供这些文件的可能性。

答案 1 :(得分:1)

如果htaccess正在保护文件,则没有这样的漏洞,后门或任何可以允许访问的内容。如果您不确定它们是否受到保护,请尝试自行从Web访问文件。从禁止文件中重定向人员是一种方法,但我个人只是在那里403,主要是因为他们不认为在那里。

通常,lib文件不会自行执行任何操作(通常它们只是函数或类),因此如果设计正确,它们不会构成直接威胁。在PHP方面对此进行攻击的一种方法是定义一些常量,即define('IN_APPLICATION', true);,然后在所有lib文件的顶部,执行以下检查:if !defined('IN_APPLICATION) exit;

答案 2 :(得分:0)

如果lib文件只包含函数或类,并且有一个文件扩展名(例如mylibrary.php),它将被解析为php文件,那么从理论上讲,将它们保存在公共目录中没有安全隐含,因为如果客户端请求web服务器将解析它的文件,并不向客户端输出任何内容。

示例库文件:

<?php
 function myfunc() {
   //do stuff
 }
?>

执行该文件根本不会做任何事情。