如果htaccess将所有内容重定向到index.php,将lib文件保存在公共目录中是否安全?
htaccess会无法重定向吗?
是否有任何循环漏洞可以让你到达目录树的其余部分?
答案 0 :(得分:2)
.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
}
?>
执行该文件根本不会做任何事情。