П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое







Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 98137 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 29065 раз(а).

Учебник HTML.
Просмотров 56193 раз(а).

Руководство по PHP5.
Просмотров 25933 раз(а).

Хостинг через призму DNS.
Просмотров 30461 раз(а).

Подборка текстов стандартных документов.
Просмотров 28969 раз(а).

Учебник PHP - Самоучитель
Просмотров 33687 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 34975 раз(а).

Внешние атаки...
Просмотров 26944 раз(а).

Учебник PHP.
Просмотров 22775 раз(а).

SSI в примерах.
Просмотров 17850 раз(а).



 
 



Учебник РНР
НазадВперёд

is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3)

is_uploaded_file - сообщает, был ли файл загружен через HTTP POST.

Описание

bool is_uploaded_file (string filename)

Возвращает TRUE, если файл filename был загружен через HTTP POST. Это помогает убедиться, что злонамеренный пользователь не пытался заставить скрипт работать с файлами, с которыми он работать не должен, например, /etc/passwd.

Этот вид проверки особенно важен, когда есть вероятность того, что некоторые действия с загруженными файлами могут дать доступ к их содержимому пользователю или даже другим пользователям  той же системы.

is_uploaded_file() доступна только в версиях PHP 3 после PHP 3.0.16 и в версиях PHP 4 после 4.0.2. Если вы продолжаете использовать ранние версии, вы можете использовать следующую функцию, которая поможет вам защититься:

Примечание: следующий пример не будет работать в версиях PHP 4 после 4.0.2. Это зависит от внутренней функциональности PHP, которая была изменена после указанной версии.

<?php
/* Проверка загруженного файла. */
function is_uploaded_file($filename) {
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* User might have trailing slash in php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* Вот как использовать её, поскольку вы также не имеете
 * move_uploaded_file() в этих старых версиях: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo "Possible file upload attack: filename '$HTTP_POST_FILES[userfile]'.";
}
?>

См. также в move_uploaded_file() и в разделе Обработка загрузки файлов пример простого использования.


Назад Оглавление Вперёд
is_readable Вверхis_writable


 







Copyright © 2005-2011 Project.Net.Ru