Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo standard HTTP cookie consente solo caratteri specifici nei nomi e nei cookie valori. Per supportare i caratteri non consentiti, ASP.NET Core:
- La codifica avviene durante la creazione di una risposta cookie.
- Decodifica durante la lettura di una richiesta cookie.
In ASP.NET Core 5.0 questo comportamento di codifica è cambiato in risposta a un problema di sicurezza.
Per informazioni, vedere Problema di GitHub dotnet/aspnetcore#23578.
Versione introdotta
5.0 Preview 8
Comportamento precedente
I nomi delle risposte cookie vengono codificati. I nomi delle richieste cookie vengono decodificati.
Nuovo comportamento
La codifica e la decodifica dei cookie nomi sono state rimosse. Per le versioni precedenti supportate di ASP.NET Core, il team prevede di attenuare il problema di decodifica sul posto. Inoltre, la chiamata IResponseCookies.Append con un nome non valido cookie genera un'eccezione di tipo ArgumentException. La codifica e la decodifica dei cookie valori rimangono invariate.
Motivo della modifica
È stato rilevato un problema in più framework Web. La codifica e la decodifica potrebbero consentire a un utente malintenzionato di aggirare una funzionalità di sicurezza denominata cookie prefissi effettuando lo spoofing di prefissi riservati mediante valori codificati come __%48ost-. L'attacco richiede un exploit secondario per inserire i cookie contraffatti, come una vulnerabilità di cross-site scripting (XSS), nel sito web. Questi prefissi non vengono usati per impostazione predefinita in ASP.NET Core o Microsoft.Owin librerie o modelli.
Azione consigliata
Se si spostano dei progetti in ASP.NET Core 5.0 o versione successiva, assicurarsi che i nomi cookie siano conformi ai requisiti di specifica del token: caratteri ASCII esclusi i controlli e i separatori "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT. L'uso di caratteri non-ASCII in nomi cookie o in altre intestazioni HTTP può generare un'eccezione sul server o essere gestito in modo non corretto dal client.
Le API interessate
- HttpRequest.Cookies
- HttpResponse.Cookies
Microsoft.Owin.IOwinRequest.CookiesMicrosoft.Owin.IOwinResponse.Cookies