Percent-encoding: tornando os URLs seguros
Os URLs (Uniform Resource Locator) so podem conter um subconjunto de caracteres ASCII. Caracteres como espacos, &, =, #, ? e todos os caracteres Unicode (letras acentuadas, ideogramas, emoji) nao podem aparecer diretamente em um URL porque tem significados especiais ou nao sao suportados. O percent-encoding (definido na RFC 3986) resolve esse problema substituindo cada caractere nao seguro por % seguido do seu codigo hexadecimal: o espaco vira %20, & vira %26, e com acento vira %C3%A9.
Nosso URL Encode/Decode lida com a codificacao e a decodificacao em ambas as direcoes, suportando corretamente UTF-8, a dupla codificacao, e as diferencas entre codificacao de path e query string. E uma ferramenta essencial para desenvolvedores web que trabalham com APIs, parametros de busca, e qualquer cenario em que os dados do usuario terminam em um URL.
Quando e o que codificar
A regra fundamental: codifique os valores, nao a estrutura do URL. Os caracteres que compoem a estrutura (://?&=#) nao devem ser codificados quando funcionam como delimitadores. Devem ser codificados apenas quando aparecem nos dados. Por exemplo, se o parametro de busca e "a=b", o & no URL e um delimitador (nao codificado), mas o = no valor deve ser codificado: ?search=a%3Db. Erros de codificacao estao entre os bugs mais comuns em aplicacoes web.
Seguranca e URL encoding
A codificacao URL e fundamental para a seguranca web. A injecao de parametros URL e um vetor de ataque: um input nao codificado pode modificar a estrutura do URL, adicionar parametros nao previstos, ou causar comportamentos inesperados. Todos os frameworks web modernos codificam automaticamente os parametros URL, mas quando voce constroi URLs manualmente (em clientes API, scripts, redirects), a codificacao correta e responsabilidade do desenvolvedor.
Para outros tipos de codificacao usados no desenvolvimento web, nosso Base64 Encode/Decode lida com a codificacao binario-texto para JWTs, data URIs e anexos de email. Para a validacao de padroes nos dados, o Regex Tester permite testar expressoes regulares em tempo real. E para a seguranca das conexoes por onde viajam esses URLs, verifique sempre que seu site usa HTTPS com SSL Check — os parametros URL sao visiveis no trafego HTTP nao criptografado.
Um caso insidioso e a dupla codificacao: quando um dado ja codificado e codificado uma segunda vez, %20 vira %2520 (o % e codificado como %25). O resultado e um URL que nao funciona porque o servidor decodifica apenas uma vez e obtem %20 como dado literal em vez do espaco. Nossa ferramenta detecta e lida corretamente com a dupla codificacao na decodificacao, mas a prevencao e melhor: codifique os dados apenas uma vez, no momento da construcao do URL.