Analizador diferencial de URL

Pega uno o varios URL (uno por línea) para detectar discrepancias entre el analizador URL del navegador/WHATWG y analizadores más antiguos de estilo RFC 3986 usados en algunos lenguajes de backend. Descubre qué destino interpreta cada uno y por qué puede suponer un problema de seguridad, no solo de formato.

El análisis se realiza localmente en tu navegador. El archivo nunca se carga al servidor.

Cómo usar esta herramienta

  1. Pega un URL o un bloque con un URL por línea; los datos no salen de tu navegador.
  2. Selecciona «Analizar URL».
  3. Revisa cada valor señalado: qué comportamiento de análisis difiere, qué analizadores afecta y por qué importa.
  4. Usa la reescritura sugerida cuando se ofrezca. La confusión con userinfo y los hosts no ASCII quedan sin resolver deliberadamente: adivinar el host pretendido sería peor que señalar la ambigüedad.

Supuestos

Fuentes y datos de referencia

Metodología

Cada URL candidato se comprueba frente a siete discrepancias independientes y documentadas entre el análisis permisivo de estilo WHATWG y el más estricto de estilo RFC 3986: normalización de barras invertidas, confusión entre userinfo y host, barras iniciales adicionales, hosts no ASCII/IDN, URL relativos al protocolo sin esquema, espacios o caracteres de control incrustados y espacios sin codificar. Solo se reescribe cuando es inequívocamente seguro: normalizar barras invertidas, quitar espacios sobrantes, reducir barras adicionales y codificar un espacio literal con porcentaje. Nunca se reescriben automáticamente la confusión de userinfo ni los hosts no ASCII porque no se puede saber qué host se pretendía usar.

Ejemplo resuelto

Confusión por el carácter `@` en userinfo

Datos de entrada: https://trusted.com@evil.com/

Resultado: El navegador interpreta lo que precede a `@` como userinfo y lo que sigue como host real: este URL apunta a evil.com, no a trusted.com. Se señala como error; es una forma clásica de eludir código que comprueba el destino mediante coincidencia textual en lugar de analizar el URL.

Barras invertidas en vez de barras normales

Datos de entrada: https:\\example.com\path

Resultado: Los navegadores normalizan las barras invertidas a barras normales en esquemas especiales como https; por eso, en un navegador se analiza igual que `https://example.com/path`. Muchos analizadores no pertenecientes a navegadores no hacen esa normalización y pueden interpretar otro host o fallar. Se señala como error y se reescribe de forma segura a `https://example.com/path`.

Barras iniciales adicionales

Datos de entrada: https:///example.com

Resultado: Los analizadores no procesan de forma uniforme tres barras después de los dos puntos del esquema. Se señala como advertencia y se reescribe de forma segura al URL canónico `https://example.com`.

Host que parece confiable dentro de userinfo

Datos de entrada: https://trusted.com@evil.com/

Resultado: En este URL, `trusted.com` es información de usuario anterior a `@`; el host es `evil.com`. Esto puede engañar a comprobaciones basadas en subcadenas que buscan un dominio de confianza sin analizar el URL. El comprobador analiza el texto y no visita ni abre la dirección.

Orientación práctica
Errores comunes

Preguntas frecuentes

¿Por qué la confusión de userinfo es un error, pero un host no ASCII solo una advertencia?

La confusión de userinfo es una vía de elusión de seguridad documentada y explotada activamente, sin un uso legítimo habitual que tenga esta forma. Un host no ASCII suele ser legítimo (un nombre de dominio internacionalizado); el problema es que los analizadores discrepan en cómo tratarlo, no que el URL sea sospechoso por sí mismo.

¿Por qué la herramienta no abre ni normaliza el URL para comprobar su host real?

Esta herramienta nunca navega a un URL pegado, lo solicita ni lo representa como enlace. Solo analiza texto estáticamente en tu navegador para evitar que una herramienta que enseña patrones de ataque por confusión de URL se convierta en un vector de ataque.

¿Un resultado limpio significa que el URL es seguro?

Significa que no se detectó ninguna de las siete discrepancias de análisis concretas y documentadas que comprueba esta herramienta. No garantiza que sea seguro solicitar el URL ni que no sea malicioso por otros motivos ajenos a las diferencias entre analizadores.

Última revisión:

Este es un comprobador de texto estático, no un segundo analizador activo: el lado estricto de RFC 3986 describe comportamientos reales documentados, pero no ejecuta una biblioteca URL de otro lenguaje sobre la entrada. Tampoco resuelve URL relativos, sigue redirecciones ni determina si un URL es malicioso más allá de los siete patrones de discrepancia indicados.

Las preferencias de tema y de herramientas, junto con las listas de herramientas guardadas y recientes, se almacenan solo en este navegador.