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

от автора

Разработчик приложения «Сообщения» для 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 работает так, как задумано. По его словам, функция защищает получателя от эксплойта, который мог бы злоупотребить этим типом проблемы.


ссылка на оригинал статьи https://habr.com/ru/articles/909214/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *