Soll HTML-Ausgabe über esc_html () UND wp_kses () übergeben werden?

Ich bin verwirrt über die verschiedenen Verwendungen von esc_html () und wp_kses (). Ich verstehe, dass esc_html () Sonderzeichen in ihre HTML-Entität konvertiert, und dass wp_kses () unerwünschte Tags entfernt (zB ), aber ich bin mir nicht sicher, in welchen Kontexten sie zusammen oder getrennt verwendet werden sollten.

Wenn ich etwas nicht vertrauenswürdiges HTML über esc_html () laufe, wird jedes JavaScript im Klartext angezeigt, anstatt vom Browser gerendert zu werden, also ist es an dieser Stelle sicher, richtig? Der einzige Grund, es auch über wp_kses () auszuführen, wäre, das rohe Skript nicht anzeigen zu lassen.

Grundsätzlich macht esc_html () es sicher, und wp_kses () macht es schön. Ist das korrekt?

Solutions Collecting From Web of "Soll HTML-Ausgabe über esc_html () UND wp_kses () übergeben werden?"

Die allgemeine Regel, zumindest wie von Mark Jaquith vertreten , ist die Bereinigung der Eingabe, die Flucht bei der Ausgabe (die Folge davon ist, dass diese Regel frühzeitig gesäubert wird , später entkommt ).

Also: Verwenden Sie Desinfektionsfilter (wie die kses() -Familie), wenn Sie nicht vertrauenswürdige Daten in der database speichern , und verwenden Sie escape-Filter (dh die esc_*() -Familie), wenn Sie nicht vertrauenswürdige Daten in der Vorlage ausgeben .

Die kses-functionen sollten verwendet werden, wenn Sie zulassen möchten, dass eine Teilmenge von html im Ergebnis enthalten ist. Zum Beispiel erlauben Kommentare einige HTML in ihnen für fett, kursiv, Links und so.

Die function esc_html sollte verwendet werden, um HTML vollständig zu umgehen. Kein HTML wird es durchlaufen, ohne zu etwas konvertiert zu werden, das von einem Browser als Nicht-HTML interpretiert wird.