Unsichtbare Zeichen im Code
Im Quellcode sind unsichtbare Zeichen nicht nur lästig, sondern ein Sicherheitsrisiko. Ein bidirektionales Steuerzeichen kann eine Zeile in einer Reihenfolge anzeigen und in einer anderen kompilieren lassen, und ein Nullbreite-Zeichen kann einen Bezeichner brechen, der einem anderen identisch aussieht. Dieses Tool legt sie offen und entfernt sie, ohne ein sichtbares Zeichen anzutasten.
Mehr: Funde, Röntgenansicht und Optionen
Röntgenansicht
Ihr Text mit jedem versteckten Zeichen als beschriftetem Chip. Für den Unicode-Namen den Mauszeiger darüber halten.
Was gefunden wurde
| Codepunkt | Zeichen | Anzahl | Aktion |
|---|
Der Umordnungsangriff (Trojan Source)
Bidirektionale Override-Zeichen (wie U+202E) ordnen die Anzeige des folgenden Textes um. In einem Kommentar oder String können sie den Prüfer eine Logik sehen lassen, während der Compiler eine andere ausführt. Der Angriff wurde 2021 dokumentiert (Boucher und Anderson) und betrifft die meisten Sprachen. Laden Sie das Beispiel ins Tool und öffnen Sie die Röntgenansicht: die roten Chips markieren die Override- und Isolate-Zeichen.
Weitere Risiken im Code
- Steuercodes aus Terminalsitzungen (ESC, U+001B), die Parser brechen.
- Geschützte Leerzeichen, die sich in die Einrückung schleichen und einrückungssensible Sprachen brechen.
- BOM (U+FEFF) am Dateianfang, das JSON-Parsing und CSV-Header korrumpiert.
Häufige Fragen
Wie gelangen diese Zeichen in meinen Code?
Beim Kopieren aus Webseiten, PDFs, KI-Chats oder Dokumenten. Sie können auch absichtlich in einem Umordnungsangriff eingefügt werden.
Ändert das Bereinigen die Logik meines Codes?
Nein. Es entfernt nur unsichtbare Zeichen und normalisiert ungewöhnliche Leerzeichen; jedes sichtbare Zeichen bleibt gleich, in derselben Reihenfolge.