Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
HTTP-cookiestandarden tillåter endast specifika tecken i cookienamn och värden. För att stödja otillåtna tecken: ASP.NET Core
- Kodar när du skapar en svarscookie.
- Avkodar när du läser en cookie för begäran.
I ASP.NET Core 5.0 ändrades det här kodningsbeteendet som svar på ett säkerhetsproblem.
För diskussion, se GitHub-ärende dotnet/aspnetcore#23578.
Version lanserad
5.0 Förhandsversion 8
Gammalt beteende
Namn på svarscookie kodas. Namn på begärandecookies avkodas.
Nytt beteende
Kodning och avkodning av cookienamn har tagits bort. För tidigare versioner av ASP.NET Core planerar teamet att åtgärda avkodningsproblemet på plats. Dessutom genererar anrop IResponseCookies.Append med ett ogiltigt cookienamn ett undantag av typen ArgumentException. Kodning och avkodning av cookievärden förblir oförändrade.
Orsak till ändring
Ett problem upptäcktes i flera webbramverk. Kodningen och avkodningen kan göra det möjligt för en angripare att kringgå en säkerhetsfunktion som kallas cookieprefix genom att förfalska reserverade prefix som __Host- med kodade värden som __%48ost-. Attacken kräver en sekundär exploatering för att mata in falska cookies, till exempel en XSS-sårbarhet (cross-site scripting) på webbplatsen. Dessa prefix används inte som standard i ASP.NET Core eller Microsoft.Owin bibliotek eller mallar.
Rekommenderad åtgärd
Om du flyttar projekt till ASP.NET Core 5.0 eller senare kontrollerar du att deras cookienamn överensstämmer med kraven för tokenspecifikation: ASCII-tecken exklusive kontroller och avgränsare "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT. Användningen av icke-ASCII-tecken i cookie-namn eller andra HTTP-huvuden kan orsaka ett undantag från servern eller hanteras felaktigt av klienten.
Berörda API:er
- HttpRequest.Cookies
- HttpResponse.Cookies
Microsoft.Owin.IOwinRequest.CookiesMicrosoft.Owin.IOwinResponse.Cookies