Escaner ReDoS de regex

Escanea patrones regex por riesgo de backtracking catastrofico, simula entradas maliciosas y sugiere alternativas seguras

Pega un regex por linea y ajusta flags, longitud maxima de input malicioso y numero de simulaciones. El analizador combina heuristicas estaticas con benchmarking de entradas casi coincidentes.

Resultados de ejemplo

1 Ejemplos

Comprobar si un regex de login sufre backtracking catastrofico

Evalua patrones con cuantificadores anidados y propone alternativas mas seguras.

{
  "summary": {
    "patterns": 2,
    "critical": 1
  },
  "results": [
    {
      "pattern": "(a+)+$",
      "riskLevel": "critical"
    }
  ]
}
Ver parámetros de entrada
{ "regexList": "(a+)+$\n^(\\w+\\s?)*$", "flags": "", "maxEvilInputLength": 32, "simulationRuns": 200 }

Datos clave

Categoría
Seguridad y validación
Tipos de entrada
textarea, text, number
Tipo de salida
json
Cobertura de muestras
4
API disponible
Yes

Resumen

El Escáner ReDoS de regex es una herramienta de seguridad diseñada para analizar expresiones regulares y detectar riesgos de backtracking catastrófico. Mediante la combinación de análisis estático y simulación de entradas maliciosas, evalúa el rendimiento de tus patrones y sugiere alternativas más seguras para prevenir ataques de denegación de servicio (ReDoS) en tus aplicaciones.

Cuándo usarlo

  • Auditar expresiones regulares antes de implementarlas en entornos de producción.
  • Revisar código heredado en busca de vulnerabilidades de denegación de servicio (ReDoS).
  • Optimizar patrones de búsqueda complejos que causan cuellos de botella en el rendimiento del servidor.

Cómo funciona

  • Pega una o varias expresiones regulares en el campo de texto principal, colocando un patrón por línea sin barras delimitadoras.
  • Opcionalmente, define los flags (como 'i' o 'm'), la longitud máxima de la entrada maliciosa y el número de corridas de simulación.
  • La herramienta ejecuta heurísticas estáticas y pruebas de rendimiento con cadenas casi coincidentes (near-miss) generadas automáticamente.
  • Revisa el informe JSON resultante, que detalla el nivel de riesgo, el tiempo de ejecución en el peor de los casos y sugerencias de reescritura segura.

Casos de uso

Validación de inputs de usuarios (como correos o contraseñas) para evitar que cadenas maliciosas bloqueen el servidor.
Integración de revisiones de seguridad en el ciclo de desarrollo para detectar patrones regex ineficientes.
Análisis de reglas de enrutamiento o firewalls de aplicaciones web (WAF) basados en expresiones regulares.

Ejemplos

1. Comprobar si un regex de login sufre backtracking catastrófico

Ingeniero de Seguridad
Contexto
El equipo de desarrollo ha creado una nueva validación para nombres de usuario, pero se sospecha que el patrón es vulnerable a ataques ReDoS.
Problema
Evaluar un patrón con cuantificadores anidados para confirmar si puede causar bloqueos en el servidor.
Cómo usarlo
Pega el patrón `(a+)+$` en la lista de regex, ajusta la longitud del input malicioso a 32 y ejecuta 200 simulaciones.
Configuración de ejemplo
maxEvilInputLength: 32, simulationRuns: 200
Resultado
El escáner clasifica el riesgo como 'crítico' en el JSON de salida y sugiere eliminar los cuantificadores anidados para evitar el backtracking.

2. Auditoría masiva de expresiones regulares heredadas

Desarrollador Backend
Contexto
Un proyecto antiguo contiene múltiples validaciones regex complejas que ralentizan el procesamiento de datos.
Problema
Identificar rápidamente cuáles de las expresiones regulares antiguas son ineficientes o peligrosas.
Cómo usarlo
Pega la lista de patrones en el campo principal, un patrón por línea, y deja los valores de simulación por defecto.
Resultado
Se genera un reporte JSON que resume los patrones analizados, destacando los que presentan riesgo alto y mostrando el tiempo máximo de ejecución simulado.

Probar con muestras

regex

Preguntas frecuentes

¿Qué es el backtracking catastrófico?

Es un problema de rendimiento donde una expresión regular compleja con cuantificadores anidados tarda un tiempo exponencial en fallar al evaluar ciertas cadenas, lo que puede bloquear el sistema.

¿Qué significa la longitud máxima de input malicioso?

Es el tamaño máximo de la cadena de texto generada por la herramienta para intentar forzar el backtracking y evaluar la vulnerabilidad del patrón.

¿Puedo analizar múltiples expresiones regulares a la vez?

Sí, puedes pegar una lista de expresiones regulares en el campo principal, asegurándote de colocar solo un patrón por línea.

¿Qué son las corridas de simulación?

Es el número de intentos repetidos de coincidencia que la herramienta realiza durante el benchmarking para calcular el tiempo de ejecución de forma precisa.

¿La herramienta corrige automáticamente mis expresiones regulares?

No modifica tu código automáticamente, pero el informe JSON incluye sugerencias de reescritura más seguras para que puedas aplicarlas manualmente.

Documentación de la API

Punto final de la solicitud

POST /es/api/tools/redos-regex-scanner

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
regexList textarea -
flags text No -
maxEvilInputLength number No -
simulationRuns number No -

Formato de respuesta

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Datos JSON: Datos JSON

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-redos-regex-scanner": {
      "name": "redos-regex-scanner",
      "description": "Escanea patrones regex por riesgo de backtracking catastrofico, simula entradas maliciosas y sugiere alternativas seguras",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=redos-regex-scanner",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]