esc_url() und WordPress-Sicherheit?
Kann mir jemand erklären, Wann escaping-Funktionen?
Mein Ziel ist die Sicherheit meiner WordPress-theme. Ich benutzte ein blank-theme von Chris Coyier und code Hinzugefügt, um die website, die ich wollte. Ich bemerkte andere Themen verwendet entkommen Funktionen aber nicht Coyier ist leer Thema, so will ich, um zu verstehen, wo diese als inserts.
Nach der Lektüre des Codex und google-Ergebnisse und die Erforschung der code von ein paar Themen, ich bin immer noch unklar, Wann
esc_url()
esc_attr()
esc_html()
Sehe ich nicht ein Muster, Wann diese. Zum Beispiel in einem Thema, für home_url ( ' /' ) - feststellen, dass esc_url verwendet wird, in header.php aber nicht in searchform.php -- Warum?
header.php
<a href=
//NOTICE ESCAPING FUNCTION BELOW
"<?php echo esc_url( home_url( '/' ) ); ?>"
title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" ><?php bloginfo( 'name' ); ?></a>
searchform.php
<form role="search" method="get" id="searchform" action=
//NO ESCAPING FUNCTION BELOW
"<?php echo home_url( '/' ); ?>"
>
- Hier ist ein Beispiel, wenn die Verwendung
esc_url
stattesc_attr
zu verhindern, XSS:<a href="<?= esc_url('javascript:alert(1)') ?>">test</a>
. Wenn Sie verwendet haben würdeesc_attr
JavaScript-code noch ausgeführt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den escape-Funktionen dienen zum Schutz gegen Angriffe und komische Zeichen. Einige der Dinge, die die Funktionen tun ist, entfernen Sie ungültige Zeichen, entfernen Sie gefährliche Zeichen und codieren Zeichen als HTML-entities.
Das problem ist, dass nicht Vertrauenswürdige Daten kommt nicht nur user, sondern kommen konnte, von den Dingen, gespeichert in Ihrer eigenen Datenbank.
Als eine Allgemeine Regel, es ist gut auf die Nutzung der escape-Funktionen, wenn ein beliebiger Teil der URL wird nicht erzeugt, durch das WordPress-Funktionen. Wenn die gesamte URL wird nur generiert, durch die WordPress-Funktionen, die dann die escape-Funktionen sind nicht notwendig.
Zum Beispiel, wenn Sie etwas drucken wollte, die URL und fügen Sie eine query-string wie dieser
sollten Sie in die Gewohnheit, mit einer escape-Funktion, weil Sie tippte einige der tatsächlichen URL.
Immer noch, es wäre besser, um die add_query_string Funktion wie diese
In diesem zweiten Beispiel, würden Sie nicht brauchen eine escape-Funktion, da die URL generiert wird vollständig von WordPress-Funktionen.
In deinem Beispiel in der Frage, die escape-Funktion ist nicht notwendig in der header.php - Datei. Die person, die schrieb, der code war wohl nur die Gewohnheit, es zu tun und es ist ok dort zu setzen, auch wenn es nicht benötigt wird.
Einen guten Platz zu Beginn der Lektüre über die Validierung von Daten auf dem WordPress-codex: https://codex.wordpress.org/Data_Validation
Müssen Sie die wordpress-escape-Funktion für alle Nutzer eingestellten Inhalten, nicht notwendig für wordpress-Funktion. Aber in plugins, template, Formulare oder Sachen wie diese benötigen Sie zur Nutzung der escape-Funktionen.
Müssen Sie die wordpress-escape-Funktionen für alle Nutzer-Inhalte einfügen als John sagt ..
Haben Sie einen Blick auf den link, den ich zur Verfügung gestellt, um wissen über wordpress-escape-Funktionen..
http://codeseekah.com/2012/03/13/wordpress-escape-functions/