L’escape consiste nel manipolare o filtrare i dati indesiderati prima di utilizzarli nell’output. È simile nel concetto alla sanificazione, ma invece di agire sull’input, agiamo sull’output.
Ad esempio, alcuni dati potrebbero essere recuperati dal database di WordPress e visualizzati su una pagina.
L’escape di tali dati previene vulnerabilità come il Cross-Site Scripting.
Funzioni WordPress comuni di escape
Di seguito sono riportate alcune funzioni di escape comunemente utilizzate e disponibili nella WordPress Security API .
esc_html()
Esegue l’escape dell’HTML per evitare che venga interpretato come codice e dovrebbe essere utilizzato quando si emettono dati all’interno di elementi HTML (ad esempio, all’interno di un <div>).
- Tag HTML
- Ingresso:
<strong>Hello World</strong> - Uscita:
<strong>Hello World</strong> - Spiegazione: i tag HTML vengono sostituiti con i loro equivalenti di entità HTML per evitare che vengano interpretati come HTML.
- Ingresso:
- Caratteri speciali
- Ingresso:
5 > 3 & 2 < 4 - Uscita:
5 > 3 & 2 < 4 - Spiegazione: i caratteri speciali come
>,<, e&vengono convertiti in entità HTML (>,<,&).
- Ingresso:
- Citazioni
- Ingresso:
"Hello" 'World' - Uscita:
"Hello" 'World' - Spiegazione: le virgolette doppie e singole vengono sostituite rispettivamente con
"e .&#039;
- Ingresso:
esc_attr()
Esegue l’escape dei dati negli attributi HTML e dovrebbe essere utilizzato quando si emettono dati all’interno di questi attributi (ad esempio, title, alt).
- Tag HTML
- Ingresso:
<div class="example">Hello World</div> - Uscita:
<div class="example">Hello World</div> - Spiegazione: i tag e gli attributi HTML vengono sostituiti con i loro equivalenti di entità HTML per impedire l’esecuzione all’interno degli attributi.
- Ingresso:
- Caratteri speciali
- Ingresso:
a & b - Uscita:
a & b - Spiegazione: i caratteri speciali come
&vengono convertiti per&garantire che siano sicuri all’interno degli attributi HTML.
- Ingresso:
- Citazioni
- Ingresso:
John's "book" - Uscita:
John's "book" - Spiegazione: le virgolette singole e doppie vengono sostituite rispettivamente con
'e"per evitare che interrompano il valore dell’attributo.
- Ingresso:
- Parentesi angolari
- Ingresso:
2 < 3 > 1 - Uscita:
2 < 3 > 1 - Spiegazione: le parentesi angolari vengono sostituite con
<e>per evitare che vengano interpretate come parte di un tag HTML.
- Ingresso:
esc_url()
Esegue l’escape degli URL per garantire che siano sicuri per l’uso negli attributi href o src.
- Protocolli non sicuri
- Ingresso:
javascript:alert('XSS') - Uscita: (stringa vuota, poiché rimuove l’intero URL)
- Spiegazione: Protocolli come
javascript:vengono completamente eliminati.
- Ingresso:
- Caratteri speciali
- Ingresso:
http://example.com/test?name=John&age=30 - Uscita:
http://example.com/test?name=John&age=30 - Spiegazione: il
&carattere viene convertito per&garantire che l’URL sia sicuro in HTML.
- Ingresso:
- Spazi e altri caratteri non URL
- Ingresso:
http://example.com/space test - Uscita:
http://example.com/space%20test - Spiegazione: gli spazi e gli altri caratteri non validi sono codificati in percentuale.
- Ingresso:
esc_js()
Esegue l’escape dei dati per un’inclusione sicura in JavaScript. Questa funzione deve essere utilizzata prima di generare dati all’interno <script>di tag o in JavaScript in linea.
- Tag HTML
- Ingresso:
<script>alert('XSS')</script> - Uscita:
<script>alert('XSS')</script> - Spiegazione: i tag HTML vengono convertiti nei loro equivalenti di entità, assicurando che non vengano interpretati come codice eseguibile.
- Ingresso:
- Citazioni
- Ingresso:
"Hello 'World'" - Uscita:
"Hello \'World\'" - Spiegazione: le virgolette doppie vengono convertite in entità HTML, mentre le virgolette singole vengono precedute da barre rovesciate.
- Ingresso:
- Caratteri di nuova riga e ritorni a capo
- Ingresso:
Hello\nWorld - Uscita:
Hello\\nWorld - Spiegazione: le nuove righe vengono sottoposte a escape per garantire che non interrompano la stringa JavaScript o introducano comportamenti indesiderati.
- Ingresso:
wp_kses()ewp_kses_post(): Queste funzioni sono state menzionate nella sezione Sanificazione . Possono essere utilizzate anche per l’escape.
Le funzioni di WordPress coinvolte nella convalida, sanificazione ed escape vengono generalmente utilizzate per prevenire le vulnerabilità di Cross-Site Scripting.


Lascia un commento
Devi essere connesso per inviare un commento.