WordPress
Sicherheit in WordPress - Flucht
Suche…
Syntax
- esc_html (String $ text)
- esc_url (String $ url, Array $ -Protokolle, String $ _context)
- esc_js (String $ text)
- wp_json_encode (gemischte $ data, int $ options, int $ depth = 512)
- esc_attr (String $ text)
- esc_textarea (Zeichenfolge $ text)
Bemerkungen
Sicherheit sollte bei der Entwicklung immer im Auge behalten werden. Ohne Sicherheit ist eine App offen für verschiedene Angriffe wie SQL-Injektionen, XSS, CSRF, RFI usw., die zu ernsthaften Problemen führen können.
Nicht vertrauenswürdige Daten stammen aus vielen Quellen (Benutzer, Websites Dritter, Ihrer eigenen Datenbank !,!) Und müssen sowohl bei der Eingabe als auch bei der Ausgabe überprüft werden. (Quelle: WordPress-Kodex)
Die Daten sollten je nach Verwendung und Zweck validiert, desinfiziert oder entzogen werden.
Validieren bedeutet, sicherzustellen, dass die von Ihnen angeforderten Daten mit den übermittelten Daten übereinstimmen. (Quelle: WordPress-Kodex)
Die Bereinigung ist etwas liberaler als ein Ansatz, Benutzerdaten zu akzeptieren. Wir können auf diese Methoden zurückgreifen, wenn es eine Reihe von akzeptablen Eingaben gibt. (Quelle: WordPress-Kodex)
Flucht bedeutet, die Daten, die Sie möglicherweise bereits haben, zu übernehmen und sie vor dem Rendern für den Endbenutzer abzusichern. (Quelle: WordPress-Kodex)
Escape-Daten im HTML-Code
Esc_html sollte immer dann verwendet werden, wenn wir Daten im HTML-Code ausgeben.
<h4><?php echo esc_html( $title ); ?></h4>
einer URL entkommen
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">Home</a>
<img src="<?php echo esc_url( $user_picture_url ); ?>" />
Escape-Daten in js-Code
esc_js()
soll innerhalb eines Tag-Attributs für Inline-JS verwendet werden.
Für Daten innerhalb eines <script>
-Tags verwenden Sie wp_json_encode()
.
<input type="text" onfocus="if( this.value == '<?php echo esc_js( $fields['input_text'] ); ?>' ) { this.value = ''; }" name="name">
wp_json_encode()
kodiert eine Variable in JSON, wobei einige Überprüfungen durchgeführt werden.
Beachten Sie, dass wp_json_encode()
die wp_json_encode()
Anführungszeichen automatisch enthält.
<?php
$book = array(
"title" => "JavaScript: The Definitive Guide",
"author" => "Stack Overflow",
);
?>
<script type="text/javascript">
var book = <?php echo wp_json_encode($book) ?>;
/* var book = {
"title": "Security in WordPress",
"author" => "Stack Overflow",
}; */
</script>
oder
<script type="text/javascript">
var title = <?php echo wp_json_encode( $title ); ?>;
var content = <?php echo wp_json_encode( $content ); ?>;
var comment_count = <?php echo wp_json_encode( $comment_count ); ?>;
</script>
Escape-Attribute
<input type="text" value="<?php echo esc_attr($_POST['username']); ?>" />
Escape-Daten im Textbereich
<textarea><?php echo esc_textarea( $text ); ?></textarea>