dedlfix: Sicherheit beim Upload

Beitrag lesen

Hi!

Welcher Vorteil bleibt dir denn noch nach CKs Verbesserungs-Patch?
Die Frage lautete anders herum: welchen Vorteil hat move_uploaded_file() jetzt und welchen eventuell später?

Sie hat jetzt und später den Vorteil, dass sie ein Einzeiler ist. Sie hat später eventuell den Vorteil, dass das Überschreibproblem mit einem Einzeiler und ohne weitere Verrenkungen gelöst wird. Sie hat jetzt und später den Vorteil, dass sie den offiziellen Weg darstellt, hochgeladenen Dateien zu verschieben. Damit wird sie auch eher supportet werden als der selbst geschriebene Code. Und dann bleibt immer noch das Sicherstellen, dass die Quelle eine hochgeladene Datei ist.

Es ist vielleicht wie addslashes vs. mysql_real_escape_string(). Welchen Vorteil bietet mres() gegenüber as()? Sicherheitstechnisch gesehen keinen, denn alle wirklich notwendigen Zeichen maskiert auch as(). Der von mres() behandelte Rest ist Kosmetik. (Strictly speaking, MySQL requires only that backslash and the quote character used to quote the string in the query be escaped. mysql_real_escape_string() quotes the other characters to make them easier to read in log files. (Die PHP-Funktion greift auf die hier verlinkte MySQL-API-Funktion zu, weswegen die Dokumentation letzterer auch unter PHP relevant ist.)) Und trotzdem sehe ich dich nicht vehement mres() für obosolet erklären. Schon dass mres() der offiziell supportete Weg ist, ist ein nicht zu unterschätzender Vorteil. (Dass mres() im Gegensatz zu as() auch Kodierungen beachten kann ist nur für einige proprietäre asiatische Kodierungen relevant, also "für uns" vernachlässigbar.)

Wer bestimmt wie, dass der "Plug-In-Schreiber" nur move_uploaded_file() benutzt und nicht die generische Variante oder file_put_contents() ?

Wir gingen bisher davon aus, dass der Plugin-Schreiber der böse ist und dem Rest des Programmes durch eine Datenänderung was unterschieben will. Aber ...

Da sehe ich nicht wirklich eine Chance, diesen "Plug-In-Berechtigten" wirklich auf Abstand zu halten. Der darf dann sowieso alles, was die Scriptinstanz darf. Oder habe ich jetzt was falsch verstanden?

Nein, das ist soweit richtig. Vermutlich spielt es keine Rolle, dass muf() eine Prüfung mehr drin hat, wenn der Angreifer nahezu beliebigen Code einschleusen und ausführen lassen kann. Doch die anderen Vorteile bleiben. Außerdem wissen wir nicht, welche Verkettung von Umständen in einem real existierenden Fall vorhanden sind und genutzt werden können und ob der Bösewicht nicht anders kann als $_FILES zu manipulieren.

Lo!

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