Multi: Sicherheit beim Upload

Beitrag lesen

  • fopen(quelle, nur lesend)
  • flock(quelle, shared)
  • fopen(ziel, nicht überschreibend/überschreibend, je nach Wunsch)
  • flock(ziel, exclusive)
  • Schleife fread(quelle, Datenblock) -> fwrite(ziel, Datenblock) bis Ende bei Quelle erreicht
  • fclose(quelle)
  • fclose(ziel)

Ich soll also die ganze Datei durch den Speicher schaufeln? Kannst du mir erklären, wie ich das bei vielen Uploads mache ohne dass das RAM knapp wird?
Insbesondere, da hier zwei Streams aktiv sind die beide Speicher fressen.

Ich lade jetzt also 4 Dateien hoch, bei der jede 2 GB gross ist. Wie soll das RAM das verkraften?

Viel wichtiger ist aber, dass Du dir nochmal durchliest, was ich bisher im Artikel schon geschrieben habe über

  • open_basedir
  • upload_tmp_dir
  • Kontrolle des Dateinamens (keine Pfade!)
  • Kontrolle der Dateiendung (möglichst richtigstellen laut MIME-Type)
  • keine Scripte zulassen
  • am besten nur bestimmte Dateiendungen zulassen aus einer Positivliste
  • Scriptausführung im Ablageverzeichnis (wenn es über HTTP/s erreichbar ist) unterbinden

Also soll ich meine Funktion so entwerfen, dass ein Anwender den Hoster vorschreiben muss, wie er seinen Server konfigurieren muss? Erklärst du mir auch, wie das bei Massenhostern gehen soll? Hast du für Strato, 1&1 usw. nen Ansprechpartner, der dafür zuständig ist?
Ansonsten ist dieser Typ insofern fürn Arsch, weil die relevanten Anwender gegen null tendieren.

Bei Shared Hosting:
Bei PHP als Modul ist ein eigenes upload_tmp_dir für jeden virtual Host mMn die wichtigste Sicherheitsmaßnahme, die aber nur dann greift, wenn open_basedir auch vernünftig eingestellt wird.

Und wie hat mein Script darauf Einfluss? Wäre schon schön, wenn deine Tips auch umsetzbar sind.

Bei PHP als CGI/Fast-CGI gibt es noch andere Möglichkeiten, da da jeder Virtual-Host sowieso unter einem eigenen User läuft und bei vernünftigen Einrichtung des Temporärverzeichnisses sowieso nur dieser User zugreifen kann.

Und wie kann das Script prüfen ob die  Einrichtung vernünftig ist? Hast du dafür auch nen Ansatz wie man per Script den Server prüfen kann?

Wie kommst Du dazu, über meine Zeit zu verfügen?

Du kennst den Unterschied ob ich meine Meinung sage oder dir etwas vorschreibe? Wenn meine geäusserte Meinung nicht zutrifft, steh es dir doch frei, ihr zu widersprechen. Wenn du das nicht tust, könnte das als Zustimmung gewertet werden, dass du dich angegriffen fühlst, suggeriert ähnliches.

Und ja, mein Posting ist provokativ, verklag mich :P

0 133

Sicherheit beim Upload

Nelly
  • php
  1. 0
    Tom
    1. 1
      ChrisB
      1. 0
        Tom
        1. 0
          ChrisB
          1. 0

            $_FILES[<name>]['tmp_name']

            Tom
            • menschelei
            1. 0
              ChrisB
              1. 0
                Tom
                1. 0
                  ChrisB
                  1. 0

                    Dateiupload, was tut move_uploaded_file() wirklich?

                    Tom
                    • php
                    1. 0
                      ChrisB
                      1. 0

                        Rumpaulerei

                        Tom
                        • menschelei
                        1. 0
                          ChrisB
                          1. 0

                            Gültigkeit von Funktionen für den Dateiupload

                            Tom
                            • php
                            1. 0
                              Auge
                              1. 0
                                Tom
                                1. 0
                                  ChrisB
                                  1. 0
                                    Tom
                                    1. 0
                                      ChrisB
                                      1. 0
                                        Tom
                                        1. 0
                                          ChrisB
                                          1. 0
                                            Tom
                                            1. 0
                                              ChrisB
                                              1. 0
                                                Tom
                                                1. 0
                                                  Matti Mäkitalo
                                                  1. 0
                                                    Kai345
                                                    1. 0
                                                      Christian Kruse
                                                  2. 0
                                                    Tom
                                                    1. 0
                                                      Multi
                                    2. 0
                                      Multi
                                      1. 0
                                        Tom
                            2. 0
                              ChrisB
                              1. 0
                                Tom
                            3. 1
                              ChrisB
                              1. 0
                                Tom
                                1. 0
                                  ChrisB
                                  1. 0
                                    Tom
                                    1. 0
                                      ChrisB
                                      1. 0
                                        Tom
                                        1. 0
                                          ChrisB
                    2. 0
                      Christian Kruse
                      1. 0
                        Tom
                        1. 0
                          Christian Kruse
                          1. 0
                            Tom
                2. 1
                  dedlfix
                  • php
                3. 4
                  Matti Mäkitalo
                  1. 0

                    Der Wert von alten PHP-Funktionen

                    Tom
                    • php
            2. 0

              Das geht auch anständiger!

              Der Martin
              • zu diesem forum
              1. 0
                Tom
                1. 1
                  ChrisB
              2. 0
                Gunnar Bittersmann
    2. 0
      Sven Rautenberg
      1. 0
        Tom
        1. 0
          ChrisB
        2. 7
          Sven Rautenberg
          1. 1
            Matti Mäkitalo
            1. 0
              dedlfix
            2. 0
              Tom
              1. 0
                Sven Rautenberg
                1. 0
                  Christian Kruse
                  1. 0
                    Sven Rautenberg
                    1. 0
                      Tom
                  2. 0
                    Tom
          2. 0
            Tom
            1. 0
              ChrisB
              1. 0
                Tom
                1. 0
                  ChrisB
                2. 2
                  Multi
                  1. 0
                    Tom
                    1. 2
                      Multi
                3. 0
                  Der Martin
                  1. 0
                    Tom
                    1. 0
                      ChrisB
            2. 3
              Sven Rautenberg
            3. 3
              dedlfix
              1. 2
                Multi
                1. 0
                  Tom
                  1. 0
                    Matti Mäkitalo
                    1. 0
                      Tom
                      1. 0
                        ChrisB
                        1. -1
                          Christian Kruse
                          1. 0
                            Sven Rautenberg
                            1. 0
                              Christian Kruse
                          2. 0
                            dedlfix
                            1. 0
                              Sven Rautenberg
                              1. 0
                                dedlfix
                                1. 0
                                  Christian Kruse
                                  1. 0
                                    dedlfix
                                    1. 0
                                      Sven Rautenberg
                                      1. 0
                                        dedlfix
                                      2. 2
                                        Christian Kruse
                                        1. 0
                                          Sven Rautenberg
                                        2. 0
                                          Tom
                                          1. 0
                                            Sven Rautenberg
                                            1. 0
                                              Tom
                                              1. 0
                                                dedlfix
                                                1. 0
                                                  Tom
                                                  1. 1
                                                    Sven Rautenberg
                                                    1. 0
                                                      Tom
                                                      1. 0
                                                        ChrisB
                                                      2. 3
                                                        Sven Rautenberg
                                                  2. 0
                                                    dedlfix
                                                    1. 0
                                                      Tom
                                                      1. 2
                                                        ChrisB
                                                      2. 3
                                                        Sven Rautenberg
                                                        1. 0
                                                          Tom
                                                          1. 0
                                                            Matti Mäkitalo
                                                            1. 0
                                                              Tom
                                                          2. 0
                                                            Sven Rautenberg
                      2. 2
                        Multi
                      3. 3
                        Christopher
    3. 0

      Alle OOP-Konzepte, die ich bisher kennengelernt habe...

      Mitleser
      • meinung
    4. 0
      Multi
      1. 0
        Tom
        1. 0

          Sicherheit beim Upload, Ergänzung zu open_basedir

          Tom
        2. 1
          ChrisB
        3. 0
          Multi
          1. 0
            dedlfix
            1. 0
              Tom
              1. 0
                dedlfix
                1. 0
                  Tom
                  1. 0
                    dedlfix
                    1. 0
                      Tom
                      1. 0
                        dedlfix
                        1. 0
                          Tom
                          1. 0
                            dedlfix
                            1. 0
                              dedlfix
                              1. 0
                                Tom
                          2. 0
                            Mitleser
        4. 1
          Multi
  2. 1
    dedlfix
    1. 0
      molily
  3. 0
    Multi