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>