UTF-7
-
История и стандартизация
- UTF-7 был предложен в RFC 1642 как экспериментальный формат для преобразования Unicode.
- RFC 2152 не стал стандартом, но указан в списке IANA как определение UTF-7.
- UTF-7 не является частью стандарта Unicode, в котором указаны только UTF-8, UTF-16 и UTF-32.
-
Особенности и использование
- UTF-7 может представлять символы напрямую или использовать «прямые символы» и «необязательные прямые символы».
- Пробел, табуляция, возврат каретки и перевод строки могут быть представлены напрямую.
- Некоторые символы требуют модификации в UTF-16 перед кодированием в модифицированный Base64.
-
Кодирование и декодирование
- Кодирование включает решение о представлении символов и кодирование блоков Unicode.
- Расшифровка включает разделение данных на ASCII и Unicode блоки и декодирование каждого блока.
-
Безопасность и устаревание
- UTF-7 допускает многократное представление строк, что может использоваться для обхода проверок на основе ASCII.
- Более старые версии Internet Explorer могут быть уязвимы для атак, используя особенности кодирования UTF-7.
- Microsoft .NET считает UTF-7 устаревшим и намеренно нарушила поддержку в .NET 5 для повышения безопасности.
Полный текст статьи: