Eine saubere Art und Weise zu reinigen Sie Ihre URL-Variablen?
Frage ich mich, ob es ist eine schnelle und einfache Funktion, um sauber get-Variablen in meiner url, bevor ich mit Ihnen arbeiten.( oder $_POST kommen Sie, daran zu denken... )
Ich glaube, ich könnte ein regex zum ersetzen von nicht erlaubten Zeichen, aber ich bin daran interessiert zu hören, was die Leute verwenden für diese Art der Sache?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich die PHP - input Filter und die Funktion urlencode.
Das Konzept der Reinigung Eingang noch nie viel Sinn für mich. Es basiert auf der Annahme, dass einige Arten der Eingabe sind gefährlich, aber in Wirklichkeit gibt es keine solche Sache wie gefährlich input; Nur, handles code Eingabe falsch.
Der Täter ist es, dass, wenn Sie einbetten einer variable innerhalb einer Art-Zeichenfolge (code), die wird dann ausgewertet, indem jede Art von interpreter, Sie müssen sicherstellen, dass die variable maskiert. Zum Beispiel, wenn Sie einbetten einen string in eine SQL-Anweisung, dann müssen Sie zitieren, und die Flucht bestimmte Zeichen in diesem string. Wenn Sie das einbetten von Werten in einer URL, dann müssen Sie die Flucht mit
urlencode
. Wenn Sie einen string einbetten in ein HTML-Dokument, dann müssen Sie die Flucht mithtmlspecialchars
. Und so weiter und so Fort.Versuchen zu "reinigen" Daten up-front ist eine Strategie zum scheitern verurteilt, weil man nicht wissen kann - an diesem Punkt - in welchem Kontext die Daten verwendet werden. Die berüchtigten magic_quotes anti-feature von PHP, ist ein Paradebeispiel für diese fehlgeleitete Idee.
Reguläre Ausdrücke können hilfreich sein, und auch PHP 5.2.0 eingeführt, eine ganze filter Erweiterung gewidmet filtern von input-Variablen in unterschiedlicher Weise.
Ist es schwer zu empfehlen, eine einheitliche Lösung, weil die Natur der input-Variablen ist so... variabel. 🙂
Ich nachstehend eine Methode zur Bereinigung von Eingaben für die MYSQL-Datenbank verwenden. Um zusammenzufassen, Durchlaufen die $_POST-oder $_GET-array über foreach, und übergeben jedes $_POST oder $_GET durch die DBSafe-Funktion, um es zu säubern. Die DBSafe könnte leicht geändert werden, für andere Verwendungen von der Variablen Daten (z.B. HTML-Ausgabe etc..).