Niewidoczne znaki w kodzie
W kodzie źródłowym niewidoczne znaki to nie tylko utrapienie: to ryzyko bezpieczeństwa. Znak sterujący kierunkiem może sprawić, że wiersz wyświetla się w jednej kolejności, a kompiluje w innej, a znak zerowej szerokości może zepsuć identyfikator wyglądający identycznie jak inny. To narzędzie ujawnia je i usuwa, nie tykając żadnego widocznego znaku.
Więcej: co znaleziono, widok rentgenowski i opcje
Widok rentgenowski
Twój tekst z każdym ukrytym znakiem pokazanym jako etykieta. Najedź, aby zobaczyć nazwę Unicode.
Co znaleziono
| Punkt kodowy | Znak | Liczba | Działanie |
|---|
Atak zmiany kolejności (Trojan Source)
Znaki nadpisania kierunku (jak U+202E) zmieniają kolejność wyświetlania następującego tekstu. W komentarzu lub ciągu mogą sprawić, że recenzent widzi jedną logikę, a kompilator wykonuje inną. Atak udokumentowano w 2021 (Boucher i Anderson) i dotyczy większości języków. Wczytaj przykład do narzędzia i otwórz widok rentgenowski: czerwone plakietki oznaczają znaki nadpisania i izolacji.
Inne zagrożenia w kodzie
- Kody sterujące z sesji terminala (ESC, U+001B), psujące analizatory.
- Spacje nierozdzielające wkradające się we wcięcia i psujące języki wrażliwe na spacje.
- BOM (U+FEFF) na początku pliku, psujący parsowanie JSON i nagłówki CSV.
Częste pytania
Jak te znaki trafiają do mojego kodu?
Przy kopiowaniu ze stron, PDF-ów, czatów AI lub dokumentów. Mogą też być wstawione celowo w ataku zmiany kolejności.
Czy czyszczenie zmienia logikę mojego kodu?
Nie. Usuwa tylko niewidoczne znaki i normalizuje dziwne spacje; każdy widoczny znak zostaje taki sam, w tej samej kolejności.
Więcej informacji
- Główne narzędzie po polsku.
- Ukryte znaki w tekście.
- Pełna lista niewidocznych znaków (po angielsku).