Guida

Codifica URL: Guida Completa

La codifica URL (anche chiamata percent-encoding) è essenziale per trasmettere dati negli URL. Comprendere quando e come i caratteri devono essere codificati previene link rotti, vulnerabilità di sicurezza ed errori di trasmissione dati.

Perché Codificare gli URL?

Gli URL sono stati progettati per testo ASCII e hanno caratteri riservati con significati speciali. Il carattere ? inizia le query string, & separa i parametri, = assegna valori e # marca i frammenti. Se i tuoi dati contengono questi caratteri, devono essere codificati per evitare interpretazioni errate. La codifica URL sostituisce caratteri non sicuri con il simbolo percento seguito da due cifre esadecimali. Lo spazio diventa %20, il carattere & diventa %26. Per caratteri UTF-8, il processo è: converti il carattere in byte UTF-8, poi codifica in percentuale ogni byte. La sicurezza è significativa. Input utente non codificato negli URL può abilitare vulnerabilità XSS, attacchi di injection e manipolazione URL. Codifica sempre contenuto generato dall'utente posto negli URL.

Come Funziona la Codifica URL

La codifica URL sostituisce caratteri non sicuri con il segno percento seguito da due cifre esadecimali. Lo spazio (ASCII 32, hex 20) diventa %20. Il carattere & (ASCII 38, hex 26) diventa %26. Caratteri sicuri che non necessitano codifica: A-Z, a-z, 0-9 e questi: - _ . ~ (sebbene alcune implementazioni li codifichino anche). Caratteri riservati che devono essere codificati quando letterali: ! # $ & ' ( ) * + , / : ; = ? @ [ ]. Hanno significati speciali negli URL, quindi il loro uso letterale richiede codifica. La doppia codifica è un errore comune. Codificare una stringa già codificata trasforma %20 in %2520.

Funzioni URL JavaScript

JavaScript fornisce diverse funzioni di codifica URL con comportamenti diversi. Scegliere quella sbagliata rompe gli URL o espone vulnerabilità di sicurezza. encodeURIComponent() è quello che normalmente vuoi. Codifica tutto tranne A-Z a-z 0-9 - _ . ! ~ * ' ( ). Usalo per valori di parametri. encodeURI() codifica per URL completi e lascia non codificati caratteri riservati come : / ? &. Usalo per URL interi, ma non gestirà correttamente valori di parametri contenenti caratteri riservati. Per decodificare usa decodeURIComponent() per valori singoli e decodeURI() per URL completi. Le funzioni legacy escape() e unescape() sono deprecate e non gestiscono correttamente Unicode. Non usarle mai in nuovo codice.

Prova lo Strumento

Codificatore/Decodificatore URL

Codificatore/Decodificatore URL

Scopri di Più

FAQ

Codificatore/Decodificatore URL

FAQ