Hallo zusammen,
ich habe in letzter Zeit einige Artikel zum Thema Usereingaben validieren/absichern studiert
und versuche ein wenig damit zu experimentieren.
Wenn ich das richtig verstanden habe, ist es wohl üblich Sonderzeichen im Sinne von Umlauten, ', " in der Datenbank unkodiert abzuspeichern wegen erleichterter Suche usw. Ich möchte nach "Müller" suchen und nicht nach "Müller".
Für die Ausgabe allerdings werden diese Zeichen in Entities umgewandelt.
Soweit richtig?
Nun versuche ich ein einfaches Affenformular zu erstellen und die Eingaben dabei vorerst mal nur mit strip_tags und htmlentities abzusichern.
Nehmen wir an, ein User postet
nach
wird daraus
Soweit alles klar, wird das Formular ausgefüllt nochmals dargestellt weil z.B. irgendein anderes Feld nicht durch die Validierung kommt, schafft der User es nicht aus dem Inputfeld auszubrechen.
Wenn jetzt aber die Eingabe des anderen Inputfeldes bereinigt wird, bekomme ich ja wieder
geschickt (vom vorherigen Versuch bereits so vorausgefüllt).
Nun muss ich also um sicher zu gehen alle geposteten Daten dekodieren um sie in der Form in die DB zu bringen. Nur um sie dann, bei der Ausgabe, wieder zu kodieren.
Irgendwie erscheint mir das umständlich.
Hab ich da wo einen Gedankenfehler oder ist das die übliche Art solche Sachen anzupacken?
Schonmal danke!
ich habe in letzter Zeit einige Artikel zum Thema Usereingaben validieren/absichern studiert

Wenn ich das richtig verstanden habe, ist es wohl üblich Sonderzeichen im Sinne von Umlauten, ', " in der Datenbank unkodiert abzuspeichern wegen erleichterter Suche usw. Ich möchte nach "Müller" suchen und nicht nach "Müller".
Für die Ausgabe allerdings werden diese Zeichen in Entities umgewandelt.
Soweit richtig?
Nun versuche ich ein einfaches Affenformular zu erstellen und die Eingaben dabei vorerst mal nur mit strip_tags und htmlentities abzusichern.
Nehmen wir an, ein User postet
Code:
<b>Test</b> /"> hallo
PHP-Code:
$var = htmlentities($var, ENT_COMPAT, 'UTF-8');
$var = strip_tags($var);
Code:
Test /"> hallo
Wenn jetzt aber die Eingabe des anderen Inputfeldes bereinigt wird, bekomme ich ja wieder
Code:
Test /"> hallo
Nun muss ich also um sicher zu gehen alle geposteten Daten dekodieren um sie in der Form in die DB zu bringen. Nur um sie dann, bei der Ausgabe, wieder zu kodieren.
Irgendwie erscheint mir das umständlich.
Hab ich da wo einen Gedankenfehler oder ist das die übliche Art solche Sachen anzupacken?

Schonmal danke!
Kommentar