Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: безопасная навигация по каталогам

Сообщения:  [1-4] 

 
 автор: sav   (06.12.2006 в 20:21)   письмо автору
 
   для: sav   (06.12.2006 в 14:07)
 

Уже нашёл решение может кому нибудь пригодится


<?
$RootPath 
$_SERVER['DOCUMENT_ROOT'];
$SlashCount substr_count($RootPath'/');
function 
RetPath($PATH$RootPath$SlashCount)
{
    
$RealPath=realpath($RootPath.$PATH);
    
$RealPath=str_replace('\\','/',$RealPath);
    
$GetLevel=substr_count($RealPath'/');
    if(
$GetLevel<$SlashCount)
        die(
'mazafaka');
    if(
$GetLevel==$SlashCount)
        return 
'/';
    
$HtmlPath=str_replace($RootPath''$RealPath);
    return 
$HtmlPath;
}
RetPath($_GET['dir'], $RootPath$SlashCount);
?>

   
 
 автор: sav   (06.12.2006 в 14:07)   письмо автору
 
   для: Саня   (06.12.2006 в 02:35)
 

[b][Саня/b]
а если ему передать в параметр $DIR типа этого ../../../../ то он пропустит ниже $_SERVER['DOCUMENT_ROOT'] ... нужно чтобы не пускала, но не запрещать эти символы ../../

   
 
 автор: Саня   (06.12.2006 в 02:35)   письмо автору
 
   для: sav   (05.12.2006 в 22:02)
 

<? 
    
function ListFiles($DIR
    { 
        
$dh=glob(trim($DIR"./").'/*'); 
        for (
$i=0;$i<count($dh);$i++) 
        { 
            echo 
basename($dh[$i]); 
        } 

    } 
?>

   
 
 автор: sav   (05.12.2006 в 22:02)   письмо автору
 
 

есть функция которая возвращает дескриптор каталога ей передаётся параметр $DIR как сделать так чтобы ниже $_SERVER['DOCUMENT_ROOT'] не пускала при возможности использовать такие символы ../../


<?
    
function ListFiles($DIR)
    {
        
$dh=glob($DIR.'/*');
        for (
$i=0;$i<count($dh);$i++)
        {
            echo 
basename($dh[$i]);
        }

    }
?>

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования