Anteckning
Å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.
| Property | Värde |
|---|---|
| Regel-ID | CA5404 |
| Title | Inaktivera inte tokenverifieringskontroller |
| Kategori | Säkerhet |
| Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
| Aktiverad som standard i .NET 9 | Nej |
Orsak
Microsoft.IdentityModel.Tokens.TokenValidationParameters Ange egenskaperna RequireExpirationTime, ValidateAudience, ValidateIssuereller ValidateLifetime till false.
Regelbeskrivning
Valideringskontroller av token säkerställer att alla aspekter analyseras och verifieras när token verifieras. Om du inaktiverar valideringen kan det leda till säkerhetshål genom att tillåta obetrodda token att göra det genom validering.
Mer information om metodtips för tokenverifiering finns på bibliotekets wiki.
Så här åtgärdar du överträdelser
Microsoft.IdentityModel.Tokens.TokenValidationParameters Ange egenskaperna RequireExpirationTime, ValidateAudience, ValidateIssueroch ValidateLifetime till true. Eller ta bort tilldelningen till false eftersom standardvärdet är true.
När du ska ignorera varningar
I de allra flesta fall är den här valideringen nödvändig för att säkerställa säkerheten för den förbrukande appen. Det finns dock vissa fall där den här valideringen inte behövs, särskilt i tokentyper som inte är av standardtyp. Innan du inaktiverar den här valideringen bör du vara säker på att du har tänkt igenom säkerhetskonsekvenserna fullt ut. Information om kompromisserna finns i wikin för tokenvalideringsbiblioteket.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA5404
// The code that's violating the rule is on this line.
#pragma warning restore CA5404
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA5404.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.
Exempel på pseudokod
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.RequireExpirationTime = false;
parameters.ValidateAudience = false;
parameters.ValidateIssuer = false;
parameters.ValidateLifetime = false;
}
}
Lösning
using System;
using Microsoft.IdentityModel.Tokens;
class TestClass
{
public void TestMethod()
{
TokenValidationParameters parameters = new TokenValidationParameters();
parameters.RequireExpirationTime = true;
parameters.ValidateAudience = true;
parameters.ValidateIssuer = true;
parameters.ValidateLifetime = true;
}
}