您好我正在做的PHP某种文件浏览器的,我想举例来说,如果我有这样的根文件夹:如何限制在PHP中访问目录及其子目录?
/ (root)
|
|
|---home
|
|
|---user
|
|
|---folder
|
|---folder1
|
|---file1
现在我怎么会做这样user
将只能浏览/ home/user /内的文件,并且无法执行例如cd ../../
并去外面?非常感谢:) 这是我使用的cd
命令代码:
<?php
function cd($actualdir, $dir) {
//echo $actualdir.$dir."<br>";
if($dir == "..") {
$expdir = explode("/", $actualdir);
$newdir = array_pop($expdir);
$fulldir = "";
foreach($expdir as $value) {
$fulldir .= $value."/";
}
$fulldir = substr($fulldir, 0, -1);
if($fulldir == "./rootfs/home") {
return "permission denied";
} else {
return $fulldir;
}
} else {
if(file_exists($actualdir."/".$dir)) {
//echo $dir;
return $actualdir."/".$dir;
} else {
return "no";
}
}
}
?>
BTW的根目录,只是在web服务器根目录应该为系统根行事壳
编辑:基本上,如果用户只user
让他进入到/home/user
及其子目录。如果用户只有test
到/home/test
和子目录。这是所有
这一工程的一半,因为它停止'CD ..'但不是'CD ../../'or类似:(此外,杀死'CD ..'在允许迪尔斯 – pmerino
你尝试在现有文件夹结构?我加了这个检查,以确保公正。 – giraff
啊终于得到了它,谢谢! – pmerino