WordPress
Sicurezza in WordPress - Escaping
Ricerca…
Sintassi
- esc_html (stringa $ testo)
- esc_url (stringa $ url, matrice $ protocolli, stringa $ _context)
- esc_js (stringa $ testo)
- wp_json_encode (mixed $ data, int $ options, int $ depth = 512)
- esc_attr (stringa $ testo)
- esc_textarea (stringa $ testo)
Osservazioni
La sicurezza dovrebbe essere sempre presente quando si sviluppa. Senza sicurezza un'app è aperta a vari attacchi come Iniezioni SQL, XSS, CSRF, RFI ecc che possono portare a seri problemi.
I dati non attendibili provengono da molte fonti (utenti, siti di terze parti, il proprio database !, ...) e tutto deve essere convalidato sia in input che in output. (Fonte: codice WordPress)
I dati devono essere convalidati, disinfettati o salvati in base all'utilizzo e allo scopo.
Convalidare è garantire che i dati che hai richiesto all'utente corrispondano a ciò che hanno inviato. (Fonte: codice WordPress)
La sanitizzazione è un po 'più liberale nell'accettare i dati degli utenti. Possiamo ricorrere all'utilizzo di questi metodi quando esiste una gamma di input accettabili. (Fonte: codice WordPress)
Per fuggire è necessario prendere i dati che potresti già avere e proteggerli prima di renderli per l'utente finale. (Fonte: codice WordPress)
sfuggire i dati nel codice HTML
esc_html deve essere utilizzato ogni volta che si generano dati all'interno del codice HTML.
<h4><?php echo esc_html( $title ); ?></h4>
sfuggire a un URL
<a href="<?php echo esc_url( home_url( '/' ) ); ?>">Home</a>
<img src="<?php echo esc_url( $user_picture_url ); ?>" />
dati di escape nel codice js
esc_js()
è progettato per essere utilizzato per JS inline, all'interno di un attributo tag.
Per i dati all'interno di un tag <script>
usa wp_json_encode()
.
<input type="text" onfocus="if( this.value == '<?php echo esc_js( $fields['input_text'] ); ?>' ) { this.value = ''; }" name="name">
wp_json_encode()
codifica una variabile in JSON, con alcuni controlli di wp_json_encode()
.
Si noti che wp_json_encode()
include automaticamente le virgolette di delimitazione delle stringhe.
<?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>
o
<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>
attributi di fuga
<input type="text" value="<?php echo esc_attr($_POST['username']); ?>" />
dati di fuga in textarea
<textarea><?php echo esc_textarea( $text ); ?></textarea>