2011-09-01 77 views
0

好吧我得到一个脚本:http://abeautifulsite.net/blog/2008/03/jquery-file-tree/PHP奇变量问题。与“根”

它的目录列表脚本。我有麻烦了。它可以在没有任何问题的情况下工作,除了它可以回到系统结构之外,我甚至可以看到一些方法。

制作脚本的人有这一行将我抛弃,我无法说出它的故事头。

file_exists($root . $_POST['dir']) 

我从来没有在那种情况下看过$ root。我也无法从脚本中的任何地方定义它。那是一件有效的事情吗?如果没有人能告诉我如何使用这个脚本有益地只显示从一个特定目录开始的目录。我用上面的链接指出的文档显示了一个例子,但它对脚本工作似乎没有任何意义。

另一方面,如果有人知道在本质上非常相似的罐头脚本,我会很高兴看到它。但我真的很想编辑这个工作方式,我希望它的工作,所以任何帮助,将不胜感激。

多远,其要回可以在http://domainsvault.com/tree/ 我说,它要早,因为我甚至不经过我的FTP访问这些目录..它是一个共享的系统.. HostGator的找到了一个例子..

* 编辑 *感谢大家的意见,这实际上是我害怕听到的。它跳跃着,我们可以跳过重新发明轮子的概念。但它的出现更多的不是它基本上是一个砖头概念,而且远远不值得使用和企图篡改。对我来说,从零开始构建一些东西比处理这件事要容易得多。这只是其中一种罐装脚本,你会发现它看上去令人愉悦,而且你希望最好。没有变成这样,再次感谢所有。

+3

这听起来像一个未发现的变量,没有什么更多或更少...:另外:从$ _POST扫描一个目录没有sanatizing输入和验证它是入侵者的开放门户。 – madflow

回答

3
file_exists($root . $_POST['dir']) 

逃跑定义为

$root=$_SERVER[ 'DOCUMENT_ROOT'] 

此连接器脚本不会检查传递给它的路径,所以完全可以跳过root(其中,是的,您应该手动设置)并浏览服务器上的任何文件,以使Web用户有权访问。

此外,它无法执行URL转义,并通过不合理使用htmlentities来破坏Unicode。这会使带有各种标点符号或非ASCII字符的文件失败。

这是一个轻盈而不安全的脚本。 不要部署它。

2

$root是用户定义的变量。它应该在脚本的某个地方定义 - 它可能是全球性的。如果变量不存在(它可能已经在先前的代码重构中被删除),该脚本仍然可以工作,在这种情况下,您应该从您在此处复制的行中删除该变量。

2

我想$根指$_SERVER[ 'DOCUMENT_ROOT']

,你可以在一开始