dedlfix: Wiki: Dateiupload mit PHP

Beitrag lesen

problematische Seite

Tach!

  • Dateinamen werden zufällig erzeugt, man spart sich die ganzen Probleme mit Case-sensitivity, Zeichen oder ganzen Dateinamen mit spezieller Bedeutung.

Der zufällig erzeugte Name und der im Upload übergebene Name sollten am Ende übergeben werden. Der Verwender möchte letzteren vielleicht nicht verlieren. Andererseits vergibt PHP bereits einen zufälligen temporären Namen, den man weiterverwenden kann, auch wenn man die Datei anderswohin kopiert. Die Wahrscheinlichkeit sollte ausreichend gering sein, dass der Name mehrfach vergeben wird. Gegebenenfalls muss nur eine Endung hinzugefügt werden, damit der Webserver sie mit richtigem Content-Type behandeln kann.

Nochmal andererseits kann man das Kopieren beispielhaft zeigen, denn mehr als ein move_uploaded_file() ist das am Ende nicht, oder doch? Der Verwender muss das sowieso anhand seiner konkreten Anforderungen lösen.

  • Uploads werden außerhalb des Document-Roots gespeichert – gibt es eigentlich wirklich Webhoster, bei denen das nicht geht?

Welche Verzeichnisse außerhalb vom DocumentRoot liegen und beschrieben werden können, ist individuell. Ob der Verwender das generell außerhalb haben möchte, ist auch nicht gewiss. Angenommen du schreibt eine Funktion, die sich um das Behandeln des Uploads kümmert, und dazu ein move_uploaded_file() ausführt, dann kann es sein, dass der Verwender die Datei nochmal kopieren muss, weil er sie woanders ablegen möchte. Andererseits ist es wie erwähnt sowieso individuell, wo was abgelegt werden kann respektive soll, so dass du im Falle einer Funktion einen Parameter entgegennehmen müsstest, der den Zielpfad angibt. Aber wenn du nichts weiter als move_uploaded_file() zuzüglich vorheriger Prüfungen ausführst, dann kann diesen letzten Schritt auch der Verwender selbständig gehen. Es reicht dann, nur zu zeigen, welche Prüfungen erforderlich sind.

Das Web ist voll von halbgaren Lösungen, auf die sonst zurückgegriffen würde (diese ist davon noch die am wenigsten unsicherste [...]

Die Fehlerbehandlung mit die() führt zu einer unakzeptablen UX. Das kann man so nicht bieten. Andererseits kann man auch nicht so allgemein eine bessere Variante zeigen, die allen Ansprüchen und Gegebenheiten gerecht wird. Exceptions werfen oder eine Liste mit Fehlermeldungen zurückgeben wären Alternativen, bei denen der Verwender individuell reagieren kann.

Und nun zuletzt meine Frage: Meint ihr, dass dieser Artikel ins Wiki passen würde? Ich habe Bedenken, dass er am Ende wie das Loginsystem damals entfernt wird und die Arbeit letztlich für die Katz war.

Das kommt ganz darauf an, ob man sich einigen kann, welche Qualität der Artikel haben soll.

dedlfix.

3 52

Wiki: Dateiupload mit PHP

Julius
  • php
  • selfhtml-wiki
  • sicherheit
  1. 0
    dedlfix
    1. 0
      Matthias Scharwies
      1. 2
        Julius
    2. 3
      Julius
      1. 1
        TS
        1. 0
          1unitedpower
          1. 1
            Julius
            1. 0
              1unitedpower
              1. 0
                TS
                1. 0
                  1unitedpower
          2. 0
            robertroth
            1. 3
              Raketenquellsuchsystem
              1. 0

                Wiki: Dateiupload mit PHP (Verständlichere Ergänzung)

                Raketenquellsuchsystem
              2. 2
                robertroth
                1. 0
                  Raketenquellsuchsystem
                2. 1
                  Rolf B
          3. 1
            TS
            1. 0
              1unitedpower
              1. 1
                TS
                1. 0
                  1unitedpower
                2. 1
                  robertroth
                  • idee
                  • php
                  • sicherheit
            2. 1
              Julius
              1. 2
                TS
                1. 2
                  Julius
                  1. 0
                    TS
            3. -1
              Raketenstarter
              1. -1
                Raketenstarter
      2. 0
        dedlfix
  2. 1
    Gunnar Bittersmann
    • grafik
    • grafik
    • selfhtml-wiki
    1. 0
      Der Martin
      1. 0

        webp-Konverter <.->

        Raketenwilli
        1. 0
          Der Martin
          • grafik
          • grafik
          1. 0
            Raketenwilli
            • produktinfo
            1. 0
              Der Martin
              • humor
              • produktinfo
          2. 0
            Raketenwilli
    2. 2
      dedlfix
  3. 2
    Matthias Apsel
    1. 2
      Julius
  4. 2
    Felix Riesterer
    1. 4
      Julius
  5. 0
    1unitedpower
    1. 1
      Julius
  6. 2
    Julius
    1. 0
      TS
      1. 1
        Julius
        1. 0
          TS
          1. 0
            Tabellenkalk
            1. 0
              TS
              1. 0
                raketenquelltextleser
                1. 1
                  Julius
                  • php
                  • sicherheit
              2. 1
                Julius