【发布时间】:2016-04-30 17:01:17
【问题描述】:
对于文件管理,我想制作一个用于扫描特定目录的锚。
我用这个回声:
echo "<div class='urldir'>"
."<a href='?dir=".dirname($dir).'/'.basename($dir).'/'.$file."'>open dir</a>"
."</div>";
dirname 和 basename 为我提供了正确的目录路径。
这是用户的正常“根”目录:
$dir = 'uploads/sfm/'.$UserID;
当我用户在他的根目录中创建一个文件夹时,他必须能够看到该文件夹中的文件。要更改目录并显示该目录中的所有文件,我使用这个
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$strArr = explode("=",$actual_link);
$CurrentPath = $strArr[1];
if(isset($_GET['dir'])) {
$dir = $CurrentPath;
}
所以我从 url 中读取了目录,变量 $dir 发生了变化
问题:网址向我显示了这样的字符串:
sfm?dir=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder
当我现在输入网址时:
sfm?dir=uploads/
他向我展示了上传文件夹中的文件。这个必须保护!
应该没有人能看到这一点。
而且这也必须被保护起来:
sfm?dir=uploads/sfm/
我怎样才能做到这一点?
顺便说一句:url 中的散列是因为我有 var $UserID md5 散列
md5($UserID)
【问题讨论】: