Scriptindex.de

[ Menü ]

Home
News
Scripts
Neuzugänge
Suchen
Bücher
Manuals

[ Inhalt ]

Script eintragen
Tutorial eintragen
Newsletter
Umfragen
Link zu uns
Werbung bei uns
Kontakt
Impressum

[ Statistik ]

Hits gesamt: 5203716
Hits Heute: 373
max. Hits (10.07.07): 6964
User Online: 61
Scripts: 2828

[ Partner ]

CodeBase
I.S.U.M.
LUG Bayreuth
PEAR NEWS
PHP Classes

[ Facebook ]

[ Eigene Domain? ]

[ Buchtipp ]

HTML und Web Publishing Handbuch. XML, DTDs, Perl, CGI
HTML und Web Publishing Handbuch. XML, DTDs, Perl, CGI

Manuals > PHP > is_uploaded_file

is_uploaded_file

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

is_uploaded_file -- Prüft, ob die Datei mittels HTTP POST upgeloaded wurde

Beschreibung

bool is_uploaded_file ( string filename)

Gibt TRUE zurück, wenn die Datei filename mittels HTTP POST upgeloaded wurde. Das ist hilfreich sicherzustellen, dass kein böswilliger User versucht hat das Script zu überlisten, indem er es Dateien bearbeiten lässt, die es gar nicht bearbeiten sollte. Zum Beispiel /etc/passwd.

Diese Prüfung ist speziell dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem User zugänglich machen könnte (oder auch anderen Usern auf dem selben System).

is_uploaded_file() ist in PHP 3 nur nach Version 3.0.16, und in PHP 4 nur nach Version 4.0.2 verfügbar. Sollten Sie eine frühere Version benutzen, können Sie sich mit der folgenden Funktion weiterhelfen:

Anmerkung: Das folgende Beispiel funktioniert nicht in Versionen nach PHP 4.0.2. Das liegt an der internen Funktionalität von PHP, welche sich nach dieser Version geändert hat.

<?php
/* Userland Test für hochgeladene Datei. */
function is_uploaded_file($filename) {
    if (!
$tmp_file = get_cfg_var('upload_tmp_dir')) {
        
$tmp_file = dirname(tempnam('', ''));
    }
    
$tmp_file .= '/' . basename($filename);
    
/* Der Benutzer könnte einen führenden Slash in php.ini haben... */
    
return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* So verwenden Sie sie, nachdem Sie in diesen älteren
* Versionen auch keine move_uploaded_file() haben: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    
copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo
"Mögliche Dateiupload-Attacke: Dateiname '$HTTP_POST_FILES[userfile]'.";
}
?>

Siehe auch move_uploaded_file(), und das Kapitel Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.


Copyright 1998 - 2009 by I.S.U.M.