Was anstelle von wp_kses () in der Benutzerausgabe verwendet werden soll

Ich brauche hier Hilfe.

Bei der Entwicklung eines Themas möchte ich sicherstellen, dass es keine Sicherheitsprobleme gibt. Daher müssen alle dynamischen Daten korrekt für den Kontext maskiert werden, in dem sie gerendert werden.

Ich weiß, wie ich dem folgenden entkommen kann:

  • Wenn “echo” im Attribut verwendet wird, verwenden Sie esc_attr
  • Wenn ‘echo’ im classnattribut verwendet wird, verwenden Sie ‘sanitize_html_class’
  • Wenn “echo” im esc_html Text- esc_html , verwenden Sie esc_html
  • Wenn ‘echo’ in der Übersetzung ist, verwenden Sie esc_html__ , esc_html_e , esc_attr_e , etc

Aber es gibt zwei Bereiche, in denen ich nicht sicher bin, was ich tun soll.

  1. Was für ein Escaping sollte ich verwenden, wenn die Benutzerausgabe einige HTML-Tags wie “em” oder “strong” enthält?

Beispiel:

  

Beachten Sie, dass “wp_kses eine teure function ist, daher sollte es nur ausgeführt werden, wenn Daten gespeichert, nicht angezeigt werden”. Beweis hier

  1. Was sollte ich zur Ausgabe von CSS-Stilen verwenden?

Beispiel:

  

Solutions Collecting From Web of "Was anstelle von wp_kses () in der Benutzerausgabe verwendet werden soll"

Lass uns gehen und sehen, was Core machen würde.

In default-filters.php hier die Inhaltsausgabe durchlaufen:

 add_filter( 'the_content', 'wptexturize' ); add_filter( 'the_content', 'convert_smilies' ); add_filter( 'the_content', 'convert_chars' ); add_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'shortcode_unautop' ); add_filter( 'the_content', 'prepend_attachment' ); 

Keine davon sind wirklich dedizierte Sicherheits- / Fluchtfunktionen.

Es ist ähnlich für Kommentare, die von zufälligen Besuchern insgesamt und nicht einmal halb vertrauenswürdigen Website-Autoren kommen:

 add_filter( 'comment_text', 'wptexturize' ); add_filter( 'comment_text', 'convert_chars' ); add_filter( 'comment_text', 'make_clickable', 9 ); add_filter( 'comment_text', 'force_balance_tags', 25 ); add_filter( 'comment_text', 'convert_smilies', 20 ); add_filter( 'comment_text', 'wpautop', 30 ); 

Kurz gesagt, es ist einigermaßen vertrauenswürdig, nachdem es bei Einreichungen bereinigt und aus der database zurückgekommen ist.