ReDoS-Scanner fuer Regex

Prueft Regex-Muster auf katastrophales Backtracking, simuliert boesartige Eingaben und schlaegt sichere Alternativen vor

Fuegen Sie ein Regex pro Zeile ein und passen Sie bei Bedarf Flags, maximale Evil-Input-Laenge und Simulationslaeufe an. Der Scanner kombiniert statische Heuristiken mit Near-Miss-Benchmarking.

Beispielergebnisse

1 Beispiele

Pruefen, ob ein Login-Regex katastrophales Backtracking erlaubt

Bewertet verschachtelte Quantifizierer, simuliert Evil-Input und liefert sichere Alternativen.

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

Wichtige Fakten

Kategorie
Sicherheit & Validierung
Eingabetypen
textarea, text, number
Ausgabetyp
json
Sample-Abdeckung
4
API verfügbar
Yes

Überblick

Der ReDoS-Scanner für Regex ist ein spezialisiertes Sicherheitswerkzeug, das reguläre Ausdrücke auf das Risiko von katastrophalem Backtracking (Regular Expression Denial of Service) prüft. Durch die Kombination von statischen Heuristiken und der Simulation bösartiger Eingaben (Near-Miss-Benchmarking) ermittelt das Tool Schwachstellen in Ihren Mustern und schlägt sichere Alternativen vor, um Performance-Einbrüche oder Serverausfälle zu verhindern.

Wann verwenden

  • Wenn Sie Benutzereingaben mit komplexen regulären Ausdrücken validieren und Serverausfälle durch ReDoS-Angriffe proaktiv ausschließen möchten.
  • Vor dem Deployment von neuem Code, um verschachtelte Quantifizierer in Regex-Mustern auf Performance-Risiken zu testen.
  • Bei der Überprüfung von Legacy-Code oder Drittanbieter-Bibliotheken auf bekannte Backtracking-Schwachstellen.

So funktioniert es

  • Fügen Sie Ihre regulären Ausdrücke zeilenweise in das Eingabefeld ein, ohne umschließende Schrägstriche.
  • Definieren Sie bei Bedarf Regex-Flags (wie 'i' oder 'm') sowie die maximale Länge der simulierten bösartigen Eingabe.
  • Legen Sie die Anzahl der Simulationsläufe fest, um das Benchmarking für den Worst-Case-Fall zu konfigurieren.
  • Starten Sie den Scan, um einen detaillierten JSON-Bericht mit Risikobewertungen, Ausführungszeiten und sicheren Alternativen zu erhalten.

Anwendungsfälle

Sicherheits-Audits von Webanwendungen zur Identifikation von ReDoS-anfälligen Validierungslogiken bei Login- oder Registrierungsformularen.
Automatisierte Überprüfungen, um sicherzustellen, dass keine unsicheren regulären Ausdrücke in die Produktionsumgebung gelangen.
Optimierung von Such- und Filterfunktionen, die auf Regex basieren, um eine konstante Performance bei großen Textmengen zu gewährleisten.

Beispiele

1. Überprüfung eines Login-Regex auf ReDoS-Risiken

Security Engineer
Hintergrund
Ein neues Registrierungsformular verwendet komplexe reguläre Ausdrücke zur Validierung von Benutzernamen und E-Mail-Adressen.
Problem
Es muss sichergestellt werden, dass Angreifer den Server nicht durch speziell präparierte Eingaben (ReDoS) lahmlegen können.
Verwendung
Fügen Sie die Regex-Muster in die Liste ein, setzen Sie die Evil-Input-Länge auf 32 und die Simulationsläufe auf 200.
Beispielkonfiguration
regexList: "(a+)+$\n^(\\w+\\s?)*$"\nmaxEvilInputLength: 32\nsimulationRuns: 200
Ergebnis
Der Scanner identifiziert `(a+)+$` als kritisches Risiko, zeigt die extrem hohe Ausführungszeit beim Benchmarking und schlägt eine sichere Alternative vor.

2. Analyse von Log-Parsing-Mustern

Backend-Entwickler
Hintergrund
Ein Node.js-Server parst täglich Millionen von Log-Zeilen mit verschiedenen regulären Ausdrücken.
Problem
Gelegentlich kommt es zu massiven CPU-Spitzen, vermutlich ausgelöst durch ineffizientes Regex-Matching bei fehlerhaften Log-Einträgen.
Verwendung
Kopieren Sie die verdächtigen Log-Parsing-Regex in das Tool, fügen Sie das Flag 'm' hinzu und erhöhen Sie die Simulationsläufe auf 500.
Beispielkonfiguration
regexList: "^([a-zA-Z0-9]+\\s?)*:.*$"\nflags: "m"\nsimulationRuns: 500
Ergebnis
Das Tool deckt verschachtelte Quantifizierer auf, die bei unvollständigen Log-Zeilen zu katastrophalem Backtracking führen, und liefert einen optimierten Ausdruck im JSON-Format.

Mit Samples testen

regex

FAQ

Was ist katastrophales Backtracking?

Ein Zustand, in dem eine Regex-Engine bei bestimmten Eingaben extrem viele Kombinationen prüfen muss, was zu massiven Verzögerungen und einer extrem hohen CPU-Auslastung führt.

Wie simuliert das Tool bösartige Eingaben?

Es generiert sogenannte 'Near-Miss'-Strings, die fast auf das Muster passen, aber am Ende fehlschlagen. Dadurch wird der Worst-Case-Pfad der Regex-Engine erzwungen und gemessen.

Welche Regex-Flags werden unterstützt?

Sie können gängige JavaScript-Regex-Flags wie 'i' (Case-Insensitive), 'm' (Multiline) oder 'u' (Unicode) in das entsprechende Textfeld eintragen.

Was bedeutet die 'Maximale Evil-Input-Länge'?

Dieser Wert (zwischen 8 und 256) bestimmt, wie lang der generierte Test-String maximal sein darf, um die Ausführungszeit beim Benchmarking zu messen.

Repariert das Tool meine fehlerhaften Regex automatisch?

Das Tool liefert im JSON-Bericht konkrete Vorschläge für sicherere Alternativen, die Sie manuell überprüfen und in Ihren Code übernehmen können.

API-Dokumentation

Request-Endpunkt

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

Request-Parameter

Parameter-Name Typ Erforderlich Beschreibung
regexList textarea Ja -
flags text Nein -
maxEvilInputLength number Nein -
simulationRuns number Nein -

Antwortformat

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

MCP-Dokumentation

Fügen Sie dieses Tool zu Ihrer MCP-Server-Konfiguration hinzu:

{
  "mcpServers": {
    "elysiatools-redos-regex-scanner": {
      "name": "redos-regex-scanner",
      "description": "Prueft Regex-Muster auf katastrophales Backtracking, simuliert boesartige Eingaben und schlaegt sichere Alternativen vor",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=redos-regex-scanner",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Sie können mehrere Tools verketten, z.B.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, maximal 20 Tools.

Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte bei [email protected]