Поделиться через


Устранение рисков: сериализация символов управления с помощью DataContractJsonSerializer

Начиная с .NET Framework 4.7, способ сериализации управляющих символов с помощью DataContractJsonSerializer изменился для соответствия ECMAScript версии 6 и версии 8.

Воздействие

В .NET Framework 4.6.2 и более ранних версиях DataContractJsonSerializer не сериализовал некоторые специальные символы управления, такие как \b, \fи \tтаким образом, совместимые со стандартами ECMAScript V6 и V8.

Для приложений, предназначенных для версий .NET Framework, начиная с .NET Framework 4.7, сериализация этих символов управления совместима с ECMAScript версии 6 и V8. Затронуты следующие API:

Смягчение последствий

Для приложений, предназначенных для версий .NET Framework, начиная с .NET Framework 4.7, это поведение включено по умолчанию.

Если это поведение нежелательно, вы можете отказаться от этой функции, добавив следующую строку в раздел <runtime> файла app.config или web.config:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseECMAScriptV6EscapeControlCharacter=false" />
</runtime>

См. также