К содержанию

Кириллица в шести символах

Разбор письма отдавал русское тело escape-кодами. Заголовки были целы, поэтому на глаз ошибка была незаметна.

· разбор: §22.54 в отчёте о реализации

Замер21 пара из 28 несвязанных русских писем склеивалась детектором рассылок. После починки — 0 из 28, расстояния 20–38 бит.

Стандартная библиотека, разбирая письмо из строки, отдаёт кириллическое тело в виде `\u041d` вместо буквы «Н» — шесть ASCII-символов на одну букву.

Само по себе это некрасиво. Опаснее оказалось последствие. Нормализация в детекторе массовых рассылок заменяет цепочки цифр на слово «число» — и в искажённом теле под замену попадают ЦИФРЫ КОДА СИМВОЛА. От письма остаётся шаблон, одинаковый у любых двух русских писем.

Признак «массовая рассылка» весит в нашем вердикте столько же, сколько подделка отправителя. То есть на загруженном сервере обычная русская переписка получала этот вес просто потому, что писем больше пятидесяти за четверть часа.

Починка — одна строка: разбор из байтов вместо строки. Нашли замером, а не чтением.

Все материалы · Лента