En este artículo
Que es el escape de cadenas?
El escape de cadenas es el proceso de agregar caracteres especiales para que los caracteres con significado sintactico se traten como texto literal. Cada lenguaje de programación y formato de datos reserva ciertos caracteres — comillas en JSON, angulos en HTML, signos de porcentaje en URLs.
Sin un escape adecuado, las cadenas con caracteres especiales causan errores de análisis, vulnerabilidades de seguridad como XSS e inyección SQL, o producen salida corrupta.
Formatos de escape explicados
Diferentes contextos tienen diferentes reglas de escape:
- Escape JSON — escapa comillas (\"), barras invertidas (\\) y caracteres de control (\n, \t, \r)
- Escape HTML — convierte < en <, > en >, & en &. Evita que los navegadores interpreten contenido como etiquetas HTML
- Codificación URL — reemplaza caracteres inseguros con códigos hex %XX (espacio se convierte en %20)
- Escape SQL — duplica comillas simples (' se convierte en ''). Previene ataques de inyección SQL
- Escape regex — antepone barra invertida a metacaracteres como . * + ? para coincidir literalmente
Casos de uso comunes
El escape de cadenas aparece en todo el ciclo de desarrollo:
- Incrustar entrada de usuario — un escape correcto al insertar en JSON, HTML o SQL previene errores y vulnerabilidades
- Sanitizar formularios — las aplicaciones web deben escapar el contenido enviado antes de renderizarlo para prevenir XSS
- Construir payloads de API — al construir cuerpos de solicitud JSON, todos los valores de cadena deben estar correctamente escapados
Pruébalo gratis — sin registro
Probar la herramienta de escape →Escape vs Codificación: cual es la diferencia?
Escape y codificación se confunden frecuentemente. El escape agrega marcadores para que los caracteres se traten literalmente. La salida permanece en el mismo formato.
La codificación convierte datos de una representación a otra completamente. Base64 convierte datos binarios en texto ASCII. La distinción clave: el escape preserva el formato, la codificación lo cambia.
Consejos y buenas practicas
Un escape correcto previene bugs, vulnerabilidades y corrupción de datos:
- Escape en el limite — siempre escape cadenas en el punto donde entran en un nuevo contexto
- Evite el doble escape — si su framework ya escapa la salida, el escape manual adicional produce barras invertidas visibles
- Use escape especifico al contexto — el escape HTML no protege contra inyección SQL y viceversa
Preguntas frecuentes
Cuando debo escapar manualmente vs usar una biblioteca?
Siempre prefiera funciones de biblioteca. Los lenguajes proporcionan utilidades de escape integradas que manejan correctamente los casos limite.
El escape de cadenas previene todos los ataques XSS?
El escape HTML previene la mayoría de los ataques XSS pero no todos los vectores. El contenido en contextos JavaScript, CSS o URL requiere sanitizacion adicional. Los encabezados CSP proporcionan la protección mas fuerte.
En que orden escapar cuando los datos pasan por multiples formatos?
Escape primero para el contexto mas interno y luego trabaje hacia afuera. Por ejemplo, para incrustar una cadena en JSON que ira en un atributo HTML, primero escape JSON y luego HTML.