Il percent-encoding è una sintassi URI per rappresentare i caratteri come valori di byte esadecimali, ad esempio %50 per P. Viene comunemente usato negli URL per trasportare in modo sicuro caratteri riservati, spazi e altri byte che potrebbero non essere validi in un path o in una stringa di query non elaborata.
Nella sicurezza informatica, il percent-encoding è importante perché sistemi diversi possono interpretare la stessa richiesta in modo differente. Un web application firewall può ispezionare il testo codificato sulla rete, mentre il server backend lo decodifica prima di instradare la richiesta. Gli attaccanti possono sfruttare questa discrepanza per nascondere percorsi bloccati, aggirare semplici regole sulle stringhe o raggiungere endpoint amministrativi tramite varianti codificate. I difensori dovrebbero normalizzare le richieste in modo coerente, ispezionare sia le forme codificate sia quelle decodificate nei log e non fare affidamento solo sul blocco dei percorsi.


