Две заметки
- Проверяем путь: разрешаем или запрещаем
убираем верхнюю директорию из пути
РАЗ.
Если необходимо установить, является ли запрашиваемый путь разрешённым в вашем скрипте, который лежит на верхнем разрешённом уровне
// пусть есть $path[] = "some/../path/to/file"; $path[] = "/other/path/to/file"; // и реальный разрешённый путь $restriced_path = dirname(__FILE__)."/"; // получаем реальные пути $real_path[0] = realpath($path1); // -> "/path/to/your/restrict/path/to/file" $real_path[1] = realpath($path2); // -> "/other/path/to/file" // проверяем их foreach($real_path as $pathn) { if ( ($r=strpos($pathn,$restriced_path))!== false && $r == 0) { echo "Path $pathn is allowed"; } else echo "Path $pathn is denied"; }
Два.
Если необходимо вырезать верхний уровень директорий
Т.е. /dir/path/to/file -> /path/to/file
$path = "/dir/path/to/file"; $path = ltrim($path,"\\/"); $path = strpbrk($path,"\\/"); echo $path;
вот и всё