Как стать автором
Обновить

Баг в «Сообщениях» в iOS не позволяет отправлять аудио с символом амперсанд, например названия брендов

Время на прочтение2 мин
Количество просмотров987

Разработчик приложения «Сообщения» для iOS Гильерме Рамбо сообщил о баге, который не позволяет пользователям отправлять голосовые сообщения, содержащие символ амперсанд (&). Таким образом, юзеры не могут отправлять аудио с упоминанием, к примеру, брендов, таких как H&M или Tiffany & Co. 

После отправки сообщения оно отобразится на iPhone, а получатель увидит три точки, как будто пользователь что-то печатает. В конечном итоге сообщение исчезает через несколько секунд, так и не появившись у получателя. 

Как оказалось, проблема не в самих аудиосообщениях, а в расшифровке, которая сопровождает их. Механизм транскрипции Apple понимает настоящие названия компаний, например H&M или Dave & Buster's, отображая их с амперсандом, а не с союзом «и». Проблема кроется в символе амперсанда, поскольку механизм транскрипции Apple не отображает его правильно в XHTML, что приводит к ошибке синтаксического анализа на устройстве получателя. 

XHTML — это более строгая версия HTML, основанная на XML и допускающая пользовательские теги, если документ совместим со стандартом XML. Символ амперсанда имеет особое значение в HTML/XHTML. Он используется для обозначения специальных символов, которые обычно интерпретируются как код, поэтому должен записываться как «&».

<html>
<body>
    <FILE 
    name="Audio Message.caf"
    width="0"
    height="0"
    datasize="7206"
    uti-type="com.apple.coreaudio-format"
    inline-attachment="ia-0"
    audio-transcription="Dave & Buster's"
    />
</body>
</html>

Система транскрипции Apple, однако, не использует это обозначение, и анализатор пытается обнаружить специальный код после амперсанда, обнаруживает ошибку и прекращает анализ содержимого.

BlastDoor contained an explosion with error: 
BlastDoor.Explosion(
  domain: "com.apple.BlastDoor.TextMessage.Message", 
  errorType: "XHTMLParseFailure", 
  keyPath: nil
)

Ошибка синтаксического анализа запускает функцию BlastDoor Messages от Apple, которая защищает пользователей от вредоносных сообщений.

Рамбо отмечает, что это даже не баг, а ошибка демонстрирует, что механизм BlastDoor от Apple работает так, как задумано. По его словам, функция защищает получателя от эксплойта, который мог бы злоупотребить этим типом проблемы.

Теги:
Хабы:
+4
Комментарии5

Другие новости