Nicht mehr ganz neu hier
Hallo,
da die Foreneinträge und die Tutorials zu diesem Thema auf psd-tutorials.de z.T. schon viele Jahre alt sind, erstelle ich ein neues Thema.
Ich habe ein fertiges Upload-Script und mache mir nun ein paar Gedanken zur Absicherung meines Servers. Ich möchte, dass nur bestimmte Dateitypen hochgeladen werden dürfen.
Erster Versuch war natürlich ($_FILES['filename']['type']). Warnende Stimmen auf php.net weisen auf die Unsicherheit dieser Methode hin, weil der so ermittelte Mime-Type vollständig unter der Kontrolle des Absenders ist. Statt dessen solle man finfo_open(FILEINFO_MIME) verwenden, was ich prozedural dann getan habe.
Die durch finfo_open(FILEINFO_MIME) ermittelten Mime-Typen enthalten mehr Details, so dass ich das Ergebnis weiter bearbeiten muss. Allerdings habe ich bemerkt, dass ich z.B. bei einer PHP-Datei (also einer Datei mit der Endung .php und PHP-Code drin), wenn sie mit dem normalen HTML-Doctype beginnt (für HTML 5 z.B. <!doctype html>), als Mime-Type text/html erhalte. Darüber hinaus stimmen die Mime-Typen z.T. auch nicht mit denen aus dem $_FILES-Array überein, was die Angelegenheit verkompliziert.
Daher folgende Frage: Reicht es aus, lediglich die Dateiendung zu prüfen? Oder ist das mit dem Mime-Type essentiell?
Vielen Dank im Voraus für jeden Hinweis!
da die Foreneinträge und die Tutorials zu diesem Thema auf psd-tutorials.de z.T. schon viele Jahre alt sind, erstelle ich ein neues Thema.
Ich habe ein fertiges Upload-Script und mache mir nun ein paar Gedanken zur Absicherung meines Servers. Ich möchte, dass nur bestimmte Dateitypen hochgeladen werden dürfen.
Erster Versuch war natürlich ($_FILES['filename']['type']). Warnende Stimmen auf php.net weisen auf die Unsicherheit dieser Methode hin, weil der so ermittelte Mime-Type vollständig unter der Kontrolle des Absenders ist. Statt dessen solle man finfo_open(FILEINFO_MIME) verwenden, was ich prozedural dann getan habe.
Die durch finfo_open(FILEINFO_MIME) ermittelten Mime-Typen enthalten mehr Details, so dass ich das Ergebnis weiter bearbeiten muss. Allerdings habe ich bemerkt, dass ich z.B. bei einer PHP-Datei (also einer Datei mit der Endung .php und PHP-Code drin), wenn sie mit dem normalen HTML-Doctype beginnt (für HTML 5 z.B. <!doctype html>), als Mime-Type text/html erhalte. Darüber hinaus stimmen die Mime-Typen z.T. auch nicht mit denen aus dem $_FILES-Array überein, was die Angelegenheit verkompliziert.
Daher folgende Frage: Reicht es aus, lediglich die Dateiendung zu prüfen? Oder ist das mit dem Mime-Type essentiell?
Vielen Dank im Voraus für jeden Hinweis!