Tag,
also wie ihr das alle kennt, man hat diverse Eingaben von Benutzern, die man speichert und an anderer Stelle wieder ausgibt.
Damit der User jetzt keinen HTML Code ausgeben kann, behandelt man diese Daten ja mit htmlentities oder strips_tags.
Jetzt stellt sich die Frage für mich, ob ich diese "Behandlung", beim Speichern oder bei der Ausgabe durchführen soll.
Also beim Speichern hätte es folgende Vorteile:
Mit einem kleinen Script kann man jede Information die vom User kommt (POST, GET, COOKIE, SESSIOn etc.) per htmlentities behandeln.
function makeon($v) {
return is_array($v) ? array_map('makeon', $v) : htmlentities($v);
}
function htmloff() {
foreach (array('POST', 'GET', 'REQUEST', 'COOKIE', 'SESSION') as $gpc)
$GLOBALS["_$gpc"] = array_map('makeon', $GLOBALS["_$gpc"]);
}
htmloff();
Dieser kleine Schnipsel in jede Datei eingebunden, und alle Eingaben von dem Benutzer werden "behandelt".
Somit würde man nicht vergessen irgendwo diese Ersetzung durchzuführen => keine Angriffsmöglichkeiten mehr für den Benutzer.
Jetzt wollte ich euch mal fragen, wie Ihr das Problem seht. Denn HTML Code soll ja normalerweise nicht ausgegeben werden, und wenn doch, dann bindet man in der Datei, die keinen PHP Code ausgeben soll, den Script nicht ein.
Oder gibt es sonst noch Einwände warum man es nicht so machen sollte?
Oder wie schützt ihr euch gegen HTML Code von einem Benutzer? Oder ist es doch besser, jede Ausgabe per htmlentities() zu behandeln?
Grüße Klaus