Как стать автором
Обновить

PHP: некоторые моменты работы с путями

Время на прочтение1 мин
Количество просмотров604

Две заметки


  • Проверяем путь: разрешаем или запрещаем
    убираем верхнюю директорию из пути



    РАЗ.

    Если необходимо установить, является ли запрашиваемый путь разрешённым в вашем скрипте, который лежит на верхнем разрешённом уровне
    // пусть есть 
    $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;
    




    вот и всё
Теги:
Хабы:
0
Комментарии0

Публикации