PHP Manuál | ||
---|---|---|
Predchádzajúci | Nasledujúci |
Vráti TRUE, ak súbor zadaný v parametri názovsúboru bol uploadnutý cez HTTP POST. To je užitočné v prípadoch, keď je potrebné uistiť sa, že sa zlomyseľný užívateľ nepokúša oklamať skript tak, aby pracoval na nepovolených či nežiadúcich súboroch - napr. na /etc/passwd.
Tento spôsob kontroly je dôležitý najmä v prípadoch, keď manipulácia s uploadnutnými súbormi môže odhaliť ich obsah užívateľovi, či dokonca ostatným užívateľom systému.
is_uploaded_file() je dostupná len v PHP 3 po PHP 3.0.16 a v PHP 4 po verzii 4.0.2. Ak používate staršie verzie, na ochranu môžete použiť nasledovnú funkciu:
Poznámka: Nasledovný príklad nepracuje v PHP 4 verzie 4.0.2 a novšej. Je to spôsobené internou funkcionalitou PHP, ktorá bola po tejto verzii upravené.
<?php /* Kontrola uploadnutých súborov. */ function is_uploaded_file($filename) { if (!$tmp_file = get_cfg_var('upload_tmp_dir')) { $tmp_file = dirname(tempnam('', '')); } $tmp_file .= '/' . basename($filename); /* užívateľ môže mať koncovú lomku '/' v php.ini... */ return (ereg_replace('/+', '/', $tmp_file) == $filename); } /* Bude sa to používať takto, pretože v starších verziách * nie je ani move_uploaded_file(): */ if (is_uploaded_file($HTTP_POST_FILES['userfile'])) { copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file"); } else { echo "Možný útok cez uploadnutý súbor: '$HTTP_POST_FILES[userfile]'."; } ?> |
Pozri tiež move_uploaded_file() a sekciu Práca s uploadnutými súbormi ktorá obsahuje aj niekoľko jednoduchých príkladov.
Predchádzajúci | Domov | Nasledujúci |
is_readable | Hore | is_writable |