Очистка скопированного текста
Текст, вставленный с сайтов, PDF и документов Word, часто несёт пробелы нулевой ширины и мягкие переносы, ломающие поиск и сравнение. Вставьте его сюда, удалите их, скопируйте чистый текст обратно.
Текстовый инструмент
Вставьте текст — детектор подсветит каждый найденный невидимый символ Unicode: пробелы нулевой ширины, соединители, направляющие метки и мягкие переносы, каждый с пометкой кода.
Невидимые символы Unicode существуют по уважительным причинам — управление переносами, соединение в курсивных письменностях, двунаправленный текст, опциональная расстановка переносов. Но поскольку они не отрисовываются, они же служат инструментом злоупотреблений. Работа Trojan Source (CVE-2021-42574, раскрыто в октябре 2021) показала, что символы двунаправленного переопределения могут заставить исходный код компилироваться не так, как он читается на экране. Сопутствующее раскрытие (CVE-2021-42694) описало атаки гомоглифами, где кириллическая а (U+0430) заменяет латинскую a (U+0061) в имени функции. Ближе к обычному использованию — символы нулевой ширины вставляют в имена пользователей и идентификаторы, чтобы две одинаково читающиеся строки сравнивались как разные. Детектор, показывающий эти символы по коду, — самый быстрый способ их найти, потому что глазом их не различить.
Текст, вставленный с сайтов, PDF и документов Word, часто несёт пробелы нулевой ширины и мягкие переносы, ломающие поиск и сравнение. Вставьте его сюда, удалите их, скопируйте чистый текст обратно.
Два имени, читающихся как «admin», могут быть разными строками, если в одном есть U+200B. Прогоните любой подозрительный идентификатор через детектор, прежде чем доверять сравнению.
Символы двунаправленного переопределения (с U+202A по U+202E) могут прятать логику в коде, выглядящем корректно. Вставьте любой фрагмент из ненадёжного источника перед тем, как его читать.
Атаки IDN-гомографов используют похожие символы для регистрации обманно похожих доменов. Детектор не распознает домен, но покажет невидимые символы, спрятанные в тексте URL.
Шесть символов выше — самые частые, но это не полная картина. Серьёзная проверка покрывает несколько диапазонов. Форматные символы нулевой ширины с U+200B по U+200F закрывают возможности переноса, соединители и направляющие метки. U+2060 (соединитель слов) и U+FEFF (метка порядка байтов, когда она в середине потока) тоже нулевой ширины. Блок двунаправленного переопределения — с U+202A по U+202E, плюс с U+2066 по U+2069 — это то, что эксплуатирует Trojan Source. U+00AD (мягкий перенос) невидим до переноса строки. Хангыльские заполнители U+115F и U+3164 и брайлевский пробел U+2800 не отрисовываются, но занимают знакоместо, что удобно для прятания содержимого на виду. Поиск похожих символов — связанная, но отдельная задача: кириллическая а и латинская a обе видимы, поэтому детектор символов их не пометит. Для этого нужна проверка по данным confusables из Unicode, которые отображают похожие символы в нормализованный остов.
Детектор полностью работает в вашем браузере как JavaScript. Текст не покидает устройство, что важно, когда вы вставляете чувствительные идентификаторы или исходный код. Работает в Chrome, Firefox, Safari, Edge и любом современном браузере на десктопе или мобильном. Он ищет символы нулевой ширины в диапазоне с U+200B по U+200F, bidi-переопределения с U+202A по U+202E и с U+2066 по U+2069, соединитель слов U+2060, мягкий перенос U+00AD и метку порядка байтов U+FEFF, когда она вне первой позиции файла. Учтите, что он помечает невидимые символы по коду; он не обнаруживает гомоглифы — видимые символы, которые просто похожи на другие.
Любой Unicode-символ, который отрисовывается без видимого глифа. Распространённые — пробел нулевой ширины (U+200B), соединитель нулевой ширины (U+200D), разделитель нулевой ширины (U+200C), метки слева направо и справа налево (U+200E, U+200F) и мягкий перенос (U+00AD). Детектор помечает каждый по коду.
Три частых источника. Копирование со страницы или PDF импортирует невидимые символы, бывшие в источнике. Редактор или CMS вставляет их для управления переносами. Или кто-то подложил их намеренно — для вотермаркинга, форматирования или чтобы идентификатор сравнивался иначе.
Сами по себе нет. Но в коде, никах и URL они могут менять то, как текст разбирается. Атака Trojan Source (CVE-2021-42574) использовала bidi-переопределения, чтобы компиляторы читали другую логику, нежели видели рецензенты. В никах скрытый U+200B делает так, что две одинаково выглядящие строки сравниваются как разные.
Вставьте текст, нажмите «Анализировать», затем «Удалить скрытые символы». Инструмент вырезает каждый обнаруженный невидимый символ и оставляет видимый текст нетронутым. Скопируйте результат кнопкой «Скопировать чистый текст».
Нет. Детектор полностью работает в вашем браузере как JavaScript. Ничего не загружается на сервер, поэтому им безопасно пользоваться на исходном коде, учётных данных или любом тексте, который нельзя раскрывать.
Нет. Гомоглифы — видимые символы: кириллическая а (U+0430) выглядит идентично латинской a (U+0061), но обе отрисовываются нормально. Этот инструмент помечает невидимые символы. Для обнаружения похожих нужна проверка по данным confusables из Unicode, которые отображают похожие символы в нормализованный остов.