dedlfix: langer Query-String

Beitrag lesen

Tach!

Server prüft jetzt die Länge des QUERY_STRING. Was über 50 ist, wird nicht beantwortet.

Ganz schlechter Plan. Besser ist es, die Parameter zu prüfen. Der Parser erzeugt:

Array
(
    [ORT] => 9628
    [KM] => 259
    [lg] => en AND 1=2 UNION SELECT 0x6461726b31636f6465,0x64..
)

Und Dein Programm macht was? Richtig, es prüft, ob derjenige Parameter gesetzt ist, welcher die Aktion "Datenbankabfrage" veranlasst. Welcher Parameter soll das sein, ORT, KM, lg???

Wahrscheinlich eher nicht und schon ist die Frage, was mit dem Request passieren soll beantwortet: weg damit.

lg wie in language klingt nach einem möglichen Parameter für die Datenbankabfrage. Auch die beiden anderen Parameter klingen in dem Kontext dessen, was Linuchs entwickelt, nach gültigen Parametern. Das Verwerfen von Anfragen mit unbekannten Parameteren kann also nicht die alleinige Lösung sein, weil dann immer noch die Aufrufe mit gültigen Parametern durchkommen, die Angriffsversuche enthalten können. Solange man seine Daten stets kontextgerecht ausgibt/verwendet, hat man zwar vielleicht Müll irgendwo stehen, der aber nichts ausführen kann, weil er als harmlose Zeichen maskiert wurde. Kontextgerechte Behandlung ist in jedem Fall notwendig, auch harmlose Eingaben können Sonderzeichen enthalten, die zumindest zu Syntaxfehlern führen, wenn man sie nicht richtig behandelt.

Außerdem musst Du damit rechnen das solche unbekannten Parameter auch per POST oder PUT reinkommen können.

Was ignoriert wird kann keinen Schaden anrichten. Da man für den Rest sowieso kontextgerechte Behandlung benötigt, braucht man im Prinzip keine weitere spezielle Abwehrmaßnahme gegen Injectionversuche. Eingabemüll aus der Datenbank löschen muss generell, das hat nichts mit der Art des Angriffs zu tun.

Unabhängig von dieser Betrachtung kann man zusätzlich gezielte Gegenmaßnahmen für bestimmte Angriffsmuster einbauen, das aber lediglich mit dem Ziel, weniger Müllbereinigung durchführen zu müssen, oder das System zu entlasten, indem man ihm unerwünschte Abfragen erspart.

Eine generelle Längenbegrenzung für den Querystring halte ich aber auch nicht unbedingt für eine allgemein gute Lösung. Da muss man schon seine Anwendung gut genug kennen, um nicht doch irgendwelche Kollateralschäden mit dieser Maßnahme zu erzeugen. Besser fände ich, die erwarteten Parameter auf fachlich gültige Inhalte zu prüfen. Wenn zu, Beispiel das Sprachkürzel immer zwei Zeichen lang ist, könnte man das prüfen, oder auch gegen eine Liste der gültigen Werte.

dedlfix.

0 97

langer Query-String

Linuchs
  • sonstiges
  1. 0
    Regina Schaukrug
    1. 0
      Linuchs
      1. 0
        Regina Schaukrug
        • datenbank
        • php
        • sicherheit
      2. 0
        pl
        1. 2
          dedlfix
          1. 0
            Gunnar Bittersmann
            1. 0
              dedlfix
              1. 0
                Gunnar Bittersmann
                1. 0
                  dedlfix
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      dedlfix
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          dedlfix
                          1. 0
                            Gunnar Bittersmann
                        2. 0
                          Rolf B
                2. 2
                  Matthias Apsel
                  1. 0
                    Gunnar Bittersmann
                  2. 0
                    Gunnar Bittersmann
                    1. 0
                      Matthias Apsel
                      • menschelei
                      1. -1
                        Gunnar Bittersmann
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            Matthias Apsel
                          2. 0
                            Tabellenkalk
                        2. 0
                          Matthias Apsel
                          1. 0
                            MudGuard
                            1. 0
                              Gunnar Bittersmann
                  3. 0

                    Internationalisierung != Sprachversionierung

                    beatovich
                    1. 0
                      dedlfix
                      1. 0
                        beatovich
                      2. 0
                        Gunnar Bittersmann
                        1. 0
                          beatovich
                        2. 0
                          dedlfix
                          1. 0
                            beatovich
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                beatovich
                                1. 0
                                  Gunnar Bittersmann
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        beatovich
                        1. 0
                          Gunnar Bittersmann
                      2. 0
                        dedlfix
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            dedlfix
                            1. 0
                              Gunnar Bittersmann
                      3. 0
                        MudGuard
                        1. 0
                          Gunnar Bittersmann
                        2. 0
                          beatovich
                      4. 0
                        Rolf B
          2. 0
            pl
            1. 0
              dedlfix
              1. 0
                pl
                1. 0
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. 0
                        pl
          3. 0
            pl
          4. 0
            Regina Schaukrug
            1. 0
              dedlfix
              1. 0

                fail2ban-config

                Regina Schaukrug
          5. -1
            Linuchs
            1. 0
              Matthias Apsel
              1. 0
                Rolf B
                1. 0
                  Matthias Apsel
            2. 0
              dedlfix
            3. 0
              Gunnar Bittersmann
              1. 2
                dedlfix
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    Matthias Apsel
                  2. 2
                    dedlfix
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Matthias Apsel
                      2. 1
                        dedlfix
                        1. 0
                          Gunnar Bittersmann
            4. 0
              pl
    2. 0
      Regina Schaukrug
  2. 0

    (Decoder)

    Regina Schaukrug
    • menschelei
    • sicherheit
    • webserver
  3. 0
    pl
  4. 0

    Getestet...

    Regina Schaukrug
    • datenbank
    • sicherheit
    1. 0
      dedlfix
      1. 0
        Regina Schaukrug
    2. 0
      Linuchs
      1. 0

        Fehlermeldung

        Regina Schaukrug
        1. 0
          Linuchs
      2. 0
        Regina Schaukrug
        • datenbank
        • php
        1. 0
          dedlfix
          1. 0
            Regina Schaukrug
            • datenbank
            1. 0
              Matthias Apsel
              • sonstiges
              1. 1
                Regina Schaukrug
                1. 0
                  Matthias Apsel
                2. 0
                  Tabellenkalk
                  1. 0
                    dedlfix
        2. 0
          Linuchs
          1. 0
            dedlfix
            1. 0
              Regina Schaukrug
          2. 0
            Regina Schaukrug
      3. 0
        Rolf B
  5. 0
    pl