我收到了其他人的系统代码,该系统在您的浏览器中显示带有照片的文件夹。
例如,这是网站上可能的 url:
gallery.php?action=view&folder=Cars
目前,您可以将“Cars”替换为 ../../../../../,这将愉快地显示 Linux 根文件夹。幸运的是,该网站目前处于离线状态。
我尝试使用 realpath 来解决这个问题。这是我到目前为止所拥有的:
case 'view' :
$name = realpath(dirname(__FILE__) . "/Content/Gallery/" . $_GET['folder']);
echo $name;
$data = $file->getPictures($name);
require 'Views/Gallery.view.php';
break;
我在第三行添加了 echo 以查看 URL 是什么。在上面的 url 中,一切都很好,并且 echo 输出了这个:
/var/www/Content/Gallery/Cars
到目前为止,一切都很好。但是,如果我输入 /../../../../../../../../ 而不是“Cars”,则 $name 变为 / 并且页面仍显示根文件夹。英语不是我的第一语言,所以我可能会误解 realpath 的工作原理或它的作用。据我了解,它会从给定的 URL 中删除 ../ 的任何实例。
有人可以告诉我我做错了什么吗?