Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De HTTP-cookiestandaard staat alleen specifieke tekens toe in cookienamen en -waarden. Ter ondersteuning van niet-toegestane tekens ASP.NET Core:
- Codeert bij het creëren van een response cookie.
- Decodeert bij het lezen van een aanvraagcookie.
In ASP.NET Core 5.0 is dit coderingsgedrag gewijzigd in reactie op een beveiligingsprobleem.
Voor discussie, zie GitHub-issue dotnet/aspnetcore#23578.
Geïntroduceerde versie
5.0 Preview 8
Oud gedrag
Namen van antwoordcookies worden gecodeerd. Cookienamen van aanvragen worden gedecodeerd.
Nieuw gedrag
Het coderen en decoderen van cookienamen is stopgezet. Voor eerdere ondersteunde versies van ASP.NET Core is het team van plan het decoderingsprobleem ter plaatse te verhelpen. Daarnaast genereert het aanroepen IResponseCookies.Append met een ongeldige cookienaam een uitzondering van het type ArgumentException. Het coderen en decoderen van cookiewaarden blijft ongewijzigd.
Reden voor wijziging
Er is een probleem ontdekt in meerdere webframeworks. Met de codering en decodering kan een aanvaller een beveiligingsfunctie met de naam cookievoorvoegsels omzeilen door gereserveerde voorvoegsels te spoofen, zoals __Host- met gecodeerde waarden, zoals __%48ost-. Voor de aanval is een secundaire aanval vereist om de vervalste cookies, zoals een XSS-beveiligingsprobleem (Cross-Site Scripting), in de website te injecteren. Deze voorvoegsels worden niet standaard gebruikt in ASP.NET Core of Microsoft.Owin bibliotheken of sjablonen.
Aanbevolen actie
Als u projecten verplaatst naar ASP.NET Core 5.0 of hoger, moet u ervoor zorgen dat de cookienamen voldoen aan de vereisten voor tokenspecificatie: ASCII-tekens, met uitzondering van besturingselementen en scheidingstekens "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT. Het gebruik van niet-ASCII-tekens in cookienamen of andere HTTP-headers kan een foutmelding van de server veroorzaken of verkeerd worden verwerkt door de client.
Betreffende API's
- HttpRequest.Cookies
- HttpResponse.Cookies
Microsoft.Owin.IOwinRequest.CookiesMicrosoft.Owin.IOwinResponse.Cookies