hi,
Öm, hier machst Du es genau falschrum. Suche nicht nach "bösem" und nimm den Rest als "gut". Du kennst nicht alles "böse", und wenn es einen neuen Angriffsweg gibt, mußt Du nachrüsten.
Daran habe ich natürlich nicht gedacht.
Auf Dauer wirst Du Dir wohl die eine oder andere Validierungsroutine anlegen -- isValidCount(), isValidInteger(), isValidFloat(), isValidName(), isValidISBN(), isValidURL(), isValidEMail(), usw. (die letzen beiden nur eingeschränkt, Du kannst bestenfals das Format prüfen).
Das ist eine gute Idee, ich komm schon jetzt mit dem bisschen was ich hab völlig durcheinander, dass gehe ich mal als erstes an.
Das ist irgendwie wirr. Warum erlaubst Du keine Parameter-Namen über 30 Zeichen? Warum keine Parameter-Werte über 30 Zeichen? Und was soll diese Prüfung überhaupt?
Da hast du mich doch drauf gebracht :)
» Was passiert, wenn $myquery zwar auf das Pattern /^\d+/ paßt, aber die Zahl, sagen wir mal, 100 Stellen hat? Was macht Dein Code dann?
Sollte ich nicht Generell die Gesamte URI auf eine bestimmte Anzahl Zeichen begrenzen? Ich weiss ja, wie lang meine URI im schlimmsten Fall wird.
Im Einsatz könnte ich dann statt Fehlermeldungen auszugeben, das Script beenden.
Oder stumpf zum Formular zurückfallen und dort über fehlerhafte Eingaben meckern.
Das ist die Alternative, die ich auch vorziehen werde.
und was sollte ich definitiv meiden?
Ungeprüfte Parameter verarbeiten. Escaping und Validierung verwechseln.
Das wird nicht mehr passieren, Danke dass du mich in die richtige Richtung geschubst hast.
mfg