1. O Que E String Escaping
String escaping e o processo de transformar caracteres especiais em uma string de modo que eles sejam interpretados literalmente em vez de como instrucoes de controle. Por exemplo, uma aspas dupla dentro de uma string JavaScript precisaria ser escapada como \" para nao encerrar a string prematuramente.
Esse processo e fundamental para seguranca (prevencao de XSS e SQL injection), corretude de dados (preservar o conteudo exato da string) e interoperabilidade entre sistemas que usam diferentes convencoes de representacao.
2. Escaping em JavaScript
Em JavaScript, os principais caracteres que precisam ser escapados dentro de strings literais sao: aspas (simples e duplas), barra invertida, e caracteres de controle como \n (nova linha), \t (tab) e \r (retorno de carro).
- Use template literals (backticks) para evitar escaping de aspas na maioria dos casos
- Sempre escape strings antes de inserir em contextos HTML via innerHTML
- JSON.stringify() pode ser usado para escapar strings de forma segura para transmissao
3. Escaping em SQL e Seguranca
SQL injection e uma das vulnerabilidades mais criticas da web. Ela ocorre quando dados do usuario sao inseridos diretamente em queries SQL sem tratamento. O escaping de aspas simples (substituindo ' por '') e uma medida basica, mas a abordagem recomendada e sempre usar prepared statements com parametros vinculados.
"Escaping manual de SQL e uma camada de protecao secundaria. Prepared statements sao a defesa primaria e nao devem ser substituidos apenas por escaping."
4. Escaping em HTML e XSS
Cross-Site Scripting (XSS) ocorre quando codigo JavaScript malicioso e injetado em paginas HTML. A prevencao requer que qualquer dado de usuario inserido no DOM seja escapado: < vira <, > vira >, e assim por diante.
- Prefira usar textContent em vez de innerHTML para inserir texto simples
- Frameworks modernos como React e Vue escapam HTML automaticamente
- Nunca confie em dados vindos de usuarios sem sanitizacao
5. Encoding de URL
URLs so podem conter um subconjunto limitado de caracteres ASCII. Caracteres especiais, espacos e caracteres nao-ASCII precisam ser codificados usando percent-encoding. A diferenca entre encodeURI e encodeURIComponent e importante: o primeiro codifica uma URL completa preservando os delimitadores (:/?#[]@), enquanto o segundo codifica todos os caracteres exceto letras, digitos e -_.!~*'().
6. Perguntas Frequentes
Os dados que eu colo sao enviados para algum servidor?
Nao. Todo o processamento acontece localmente no seu navegador via JavaScript. Nenhum texto e enviado ou armazenado em servidores.
Posso usar esta ferramenta para escapar codigos sensiveis?
Sim. Como o processamento e 100% local, nenhum dado sai do seu dispositivo. E seguro usar para qualquer tipo de string, incluindo credenciais ou dados confidenciais.
O escaping substitui o uso de prepared statements em SQL?
Nao. O escaping e uma camada adicional de protecao. Para producao, sempre use prepared statements ou ORM com parametros vinculados como defesa primaria contra SQL injection.