ArtEngineArtEngine
Главная | Регистрация | Статистика | Расширенный поиск | Новое на сайте  

Меню

Аккаунт

Реклама

 
Реклама
 
 

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

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
На главную
 


 

Опрос

Друзья

Реклама

  2007 © PHP-Book
Designed by PHP-Book.Net