Ist check_plain () genug für die Wieder Darstellung des Textes von Nutzern im Browser eingegeben haben , oder sollte ich noch Filter mit filter_xss () ?
Ist check_plain () genug für die Wieder Darstellung des Textes von Nutzern im Browser eingegeben haben , oder sollte ich noch Filter mit filter_xss () ?
Antworten:
Ich stelle mir vor, es geht um die Verwendung von check_plain(filter_xss($string))
oder filter_xss(check_plain($string))
.
check_plain()
und filter_xss()
haben zwei verschiedene und im Gegensatz dazu Zwecke:
check_plain()
codiert Sonderzeichen in einer Klartextzeichenfolge, die dann als HTML angezeigt wird.filter_xss()
filtert eine HTML-Zeichenfolge, um Sicherheitsanfälligkeiten durch Cross-Site-Scripting (XSS) zu vermeiden. Insbesondere ist sein Zweck:
Wenn Sie verwenden check_plain()
, soll die an die Funktion übergebene Zeichenfolge als einfacher Text verwendet werden. in diesem Fall filter_xss()
ist nicht erforderlich. Wenn Sie verwenden filter_xss()
, soll die an die Funktion übergebene Zeichenfolge HTML sein und check_plain()
ist nicht erforderlich.
Wenn es bei der Frage um die Verwendung von check_plain()
und filter_xss()
für verschiedene Teile desselben Strings geht, können Sie, wie in seinem Kommentar hervorgehoben, (zum Beispiel) check_plain()
den Inhalt von Tag-Attributen und filter_xss()
das gesamte HTML-Tag verwenden.