Italiano

Strumenti per sviluppatori · HTML escaper di entità

I cinque personaggi da cui devi fuggire in HTML e perché ognuno di essi è pericoloso

· Come funziona

html codifica sicurezza

I cinque caratteri da cui devi sfuggire in HTML e il motivo per cui ognuno di essi è pericoloso mostrati come diagramma di riferimento dei caratteri sicuro per il browser
Illustrazione vettoriale originale ToolAcre

L'escape HTML si riduce a cinque caratteri: & < > " e '. Questo post spiega il ruolo che ciascuno gioca nel markup, perché l'elenco dipende dal contesto e come viene scelta l'entità per ciascuno.

Il commento che ha chiuso anticipatamente un tag: un < e > che ha trasformato il testo di un utente in markup

Il commento che ha chiuso anticipatamente un tag: un < e > che ha trasformato il testo di un utente in markup. L'implementazione mappa sempre la e commerciale, il minore di, il maggiore di, le virgolette doppie e l'apostrofo. L'apostrofo diventa il numero di riferimento decimale 39, mentre gli altri quattro utilizzano forme con nomi familiari.

Per verificare i caratteri di escape HTML, costruisci il commento che si è chiuso per uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina. Conservare un tag all'inizio della politica di cinque caratteri produce randagi e questo si è trasformato; identificare dove viene consumato il testo di un utente. L'osservazione sul markup appartiene solo al testo HTML.

e primo, sempre: perché è necessario eseguire l'escape del carattere di escape stesso e cosa succede se lo salti

e primo, sempre: perché è necessario eseguire l'escape del carattere di escape stesso e cosa succede se lo salti. Un singolo ciclo di punti di codice previene i bug dell'ordine di sostituzione: una e commerciale introdotta da una sostituzione precedente non viene mai più visitata, quindi il codificatore non sfugge al proprio output durante lo stesso passaggio.

Uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina può verificare innanzitutto perché il carattere di escape stesso deve essere registrato prima del passaggio della policy di cinque caratteri. Confronta l'escape e cosa succede dopo e individua il parser responsabile se salti. Questo risultato di caratteri di escape HTML lo spiega, non i contesti eseguibili.

< e > nel contenuto testuale: come il tokenizzatore decide che un tag è iniziato e perché > viene evitato principalmente per simmetria

< e > nel contenuto testuale: come il tokenizzatore decide che un tag è iniziato e perché > viene evitato principalmente per simmetria. Il markup inizia con meno di nel testo HTML. Maggiore di è codificato in modo coerente anche se il suo pericolo dipende dallo stato del parser, rendendo l'output prevedibile quando i frammenti si spostano tra testo e attributi tra virgolette.

Isolare e inserire il contenuto testuale in un breve esempio di policy di cinque caratteri. Mostra come il tokenizzatore decide come origine letterale, segue l'inizio di un tag fino alla sua destinazione e assegna un nome alla lettura API e il motivo per cui viene eseguito l'escape. Per i caratteri di escape html, soprattutto per la simmetria rimane prova legata al parser.

Le virgolette nei valori degli attributi — " e ' e il motivo per cui il delimitatore di attributo utilizzato determina quale è critico

Virgolette nei valori degli attributi — " e ' e perché il delimitatore di attributo utilizzato decide quale è critico. Entrambi i caratteri di virgoletta sono codificati indipendentemente da quale delimitatore circonda un attributo. Ciò è conservativo per gli attributi HTML tra virgolette, ma non convalida i nomi degli attributi, gli schemi o i linguaggi downstream.

Tratta le virgolette nei valori degli attributi come un esperimento di confine. Uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina dovrebbe conservare e, per quale motivo, eseguire un'operazione di policy di cinque caratteri e ispezionare il delimitatore di attributo utilizzato carattere per carattere prima di modificarlo per decidere quale sia. L'affermazione relativa alle interruzioni critiche a questo livello HTML.

Esempio funzionante: escape di uno snippet contenente tutte e cinque: le entità prodotte e il risultato renderizzato

Esempio funzionante: escape di uno snippet contenente tutte e cinque: le entità prodotte e il risultato renderizzato. Per l'apostrofo di input & < > ", ogni modalità restituisce &amp; < > " '. Gli spazi ordinari rimangono spazi e le cinque sostituzioni appaiono nell'ordine di origine.

Riproduci un esempio pratico di fuga da un input innocuo invece del materiale del cliente. Registra lo snippet che li contiene tutti e cinque, osserva le entità prodotte e conta ogni passaggio intenzionale di policy di cinque caratteri. La traccia dei caratteri di escape html consente a uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina di valutare il risultato visualizzato e l'evidenza della policy di cinque caratteri senza tirare a indovinare.

Forme con nome e numeriche — " versus " e ' versus ', e che sono sicure nei parser più vecchi

Forme con nome e numeriche — " versus " e ' versus ', e che sono sicure nei parser più vecchi. Il decodificatore accetta sia " che numerici ", più ' e '. Il codificatore emette deliberatamente ' anziché ', in linea con la sua scelta di portabilità documentata.

Posiziona nome rispetto a forme numeriche, quot rispetto a 34 e e 39 rispetto a apos e affiancati durante la revisione delle norme in cinque caratteri. Uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina può quindi decidere se è sicuro modificare al momento della conversione o a valle. Mantenere la conclusione dei caratteri di escape html sui parser più vecchi fuori dalle rivendicazioni di sicurezza generiche.

Cosa non copre: fuga all'interno di <script>, gestori di eventi o URL, che richiedono regole diverse

Ciò che questo non copre: fuga all'interno di <script>, gestori di eventi o URL, che richiedono regole diverse. Queste cinque sostituzioni descrivono solo l'escape del testo HTML e degli attributi tra virgolette. I componenti JavaScript, CSS, SQL e URL hanno grammatiche indipendenti e nessun output di entità è un disinfettante generale.

Definire cosa non fa prima di eseguire la policy di cinque caratteri. Salva la copertura che fuoriesce all'interno dello script come controllo, ispeziona i punti di codice dietro i gestori di eventi o gli URL e mappa quelli che necessitano di regole diverse all'interprete successivo. Ciò rende verificabile la prova della policy di cinque caratteri per uno sviluppatore che visualizza il testo inviato dall'utente in una pagina che esamina i caratteri di escape html.

Conclusione: cinque caratteri per il testo HTML e attributi tra virgolette, non tutti i contesti del parser

Conclusione: cinque caratteri per il testo HTML e gli attributi tra virgolette, non per tutti i contesti del parser. Utilizza lo strumento per verificare l'esatta trasformazione di cinque caratteri, quindi inserisci il risultato solo in un contesto HTML di cui comprendi le regole. "Incolla ovunque" non è intenzionalmente promesso.

Collega cinque caratteri da asporto a un output di policy osservabile di cinque caratteri. Mantieni il testo html e tra virgolette accanto al risultato a passaggio singolo, quindi verifica dove gli attributi non tutti i parser entrano nel contesto. Uno sviluppatore che esegue il rendering del testo inviato dall'utente in una pagina può ora esaminare l'evidenza della policy di cinque caratteri come ricerca di caratteri di escape HTML stretti. La decisione pratica alla base di questo articolo è specifica: l'escape di HTML si riduce a cinque caratteri: & < > " e '. Questo post spiega il ruolo che ciascuno gioca nel markup, perché l'elenco dipende dal contesto e come viene scelta l'entità per ciascuno. L'azione del lettore è altrettanto concreta: si collega all'escape di entità HTML e dimostra l'escape di uno snippet contenente caratteri di markup, rimandando il lettore alla pagina dello strumento Sezione "Input e output supportati" per l'esatto set di caratteri da cui sfugge.