Caracteres invisibles en el código
En el código fuente, los caracteres invisibles no son solo un incordio: son un riesgo de seguridad. Un control bidireccional puede hacer que una línea se muestre en un orden y se compile en otro, y un carácter de ancho cero puede romper un identificador que parece idéntico a otro. Esta herramienta los expone y los elimina sin tocar ningún carácter visible.
Más: qué se encontró, vista de rayos X y opciones
Vista de rayos X
Tu texto con cada carácter oculto expuesto como una etiqueta. Pasa el cursor para ver su nombre Unicode.
Qué se encontró
| Punto de código | Carácter | Cantidad | Acción |
|---|
El ataque de reordenamiento (Trojan Source)
Los caracteres de anulación bidireccional (como U+202E) reordenan cómo se muestra el texto que los sigue. En un comentario o una cadena, pueden hacer que el revisor vea una lógica y el compilador ejecute otra. El ataque se documentó en 2021 (Boucher y Anderson) y afecta a la mayoría de los lenguajes. Carga el ejemplo en la herramienta y abre la vista de rayos X: los chips rojos marcan los caracteres de anulación e aislamiento.
Otros riesgos en el código
- Códigos de control de sesiones de terminal (ESC, U+001B) que rompen los analizadores.
- Espacios de no separación que se cuelan en la indentación y rompen lenguajes sensibles a los espacios.
- BOM (U+FEFF) al inicio de un archivo que corrompe el análisis de JSON y los encabezados CSV.
Preguntas frecuentes
¿Cómo entran estos caracteres en mi código?
Al copiar desde páginas web, PDF, chats de IA o documentos. También pueden insertarse de forma deliberada en un ataque de reordenamiento.
¿La limpieza cambia la lógica de mi código?
No. Solo elimina caracteres invisibles y normaliza espacios raros; cada carácter visible queda igual, en el mismo orden.