您好我正在做的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