Hallo, meine nächste Frage.
Es geht um Kontrolle von User-Eingaben in Formularfelder (input text, textarea, checkbox usw.).
Laut Wissenssammlung reicht strip_tags zum Schutz aus:
Erste Frage:
Was ist der Unterschied zwischen strip_tags und
?
Ich bei Tests nur festgestellt, dass filter_var... zusätzlich die Quotes umwandelt.
Zweite Frage:
Reicht das auch, wenn die Eingaben auch in eine Datenbank eingetragen werden (INSERT, UPDATE)? Oder sollte hier noch
hinzu.
Dritte Frage (in bin ein Ungläubiger):
Sind weitere Zeichen (z.B. %, !, ?, >, -) bei INSERT bzw. UPDATE unschädlich?
Ich hab's mal getestet (mit htmlentities). Der Eintrag in der DB sieht so aus:
Umgewandelt wurde also nur "" und >
Warum wandelt htmlentities diese Zeichen nicht um? Für die gibt es ja HTML-Maskierungen.
Die wichtigste Frage ist natürlich, ob das ein Sicherheitsproblem darstellt?
Wie immer danke schon mal für gute Tipps!
Es geht um Kontrolle von User-Eingaben in Formularfelder (input text, textarea, checkbox usw.).
Laut Wissenssammlung reicht strip_tags zum Schutz aus:
Eine Möglichkeit, XSS zu verhindern, ist die Entfernung aller Tags mit strip_tags. Dies ist die empfohlene Vorgehensweise, wenn es sich um Daten handelt, in denen HTML nichts zu suchen hat (etwa Angabe des Namens, der Adresse oder der Telefonnummer).
Was ist der Unterschied zwischen strip_tags und
PHP-Code:
filter_var($_POST['eintrag'], FILTER_SANITIZE_STRING)
Ich bei Tests nur festgestellt, dass filter_var... zusätzlich die Quotes umwandelt.
Zweite Frage:
Reicht das auch, wenn die Eingaben auch in eine Datenbank eingetragen werden (INSERT, UPDATE)? Oder sollte hier noch
PHP-Code:
VALUES ('".htmlentities($eintrag)."'
// oder
VALUES ('".htmlspecialchars($eintrag)."'
Dritte Frage (in bin ein Ungläubiger):
Sind weitere Zeichen (z.B. %, !, ?, >, -) bei INSERT bzw. UPDATE unschädlich?
Ich hab's mal getestet (mit htmlentities). Der Eintrag in der DB sieht so aus:
Code:
"Test" mit Leerzeichen!!! % prozent - Bindestrich > eckige Klammer ; Semikolon ? fragezeichen @ Klammeraffe
Warum wandelt htmlentities diese Zeichen nicht um? Für die gibt es ja HTML-Maskierungen.
Die wichtigste Frage ist natürlich, ob das ein Sicherheitsproblem darstellt?
Wie immer danke schon mal für gute Tipps!
Kommentar