Mitigazione: Serializzazione dei caratteri di controllo con DataContractJsonSerializer

A partire da .NET Framework 4.7 è stato modificato il modo in cui i caratteri di controllo vengono serializzati con DataContractJsonSerializer, in modo da renderli conformi a ECMAScript V6 e V8.

Impatto

In .NET framework 4.6.2 e versioni precedenti, DataContractJsonSerializer non serializza alcuni caratteri di controllo speciali, ad esempio \b, \f e \t, in modo compatibile con gli standard ECMAScript V6 e V8.

Per le applicazioni destinate a versioni di .NET Framework a partire dalla 4.7, la serializzazione di questi caratteri di controllo è compatibile con ECMAScript V6 e V8. Sono interessate le seguenti API:

Mitigazione

Per le applicazioni destinate a versioni di .NET Framework a partire dalla 4.7, questo comportamento è abilitato per impostazione predefinita.

Se questo comportamento non è opportuno, è possibile rifiutare esplicitamente questa funzionalità aggiungendo la riga seguente alla sezione <runtime> del file app.config o web.config:

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

Vedi anche