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.
| Eigenschappen | Weergegeven als | 
|---|---|
| Regel-id | CA5404 | 
| Titel | Tokenvalidatiecontroles niet uitschakelen | 
| Categorie | Beveiliging | 
| Oplossing is brekend of niet-brekend | Niet-brekend | 
| Standaard ingeschakeld in .NET 9 | Nee | 
Oorzaak
Instellen van de eigenschappen Microsoft.IdentityModel.Tokens.TokenValidationParameters, RequireExpirationTime, ValidateAudience, ValidateIssuer of ValidateLifetime op false.
Beschrijving van regel
Controle van tokenvalidatie zorgt ervoor dat tijdens het valideren van tokens alle aspecten worden geanalyseerd en geverifieerd. Het uitschakelen van validatie kan leiden tot beveiligingsgaten door niet-vertrouwde tokens toe te staan deze via validatie te laten doorlopen.
Meer informatie over aanbevolen procedures voor tokenvalidatie vindt u op de wiki van de bibliotheek.
Schendingen oplossen
Stel de Microsoft.IdentityModel.Tokens.TokenValidationParameters eigenschappen RequireExpirationTime, ValidateAudienceen ValidateIssuerValidateLifetime in op true. Of verwijder de toewijzing naar false omdat de standaardwaarde is true.
Wanneer waarschuwingen onderdrukken
In de meeste gevallen is deze validatie essentieel om de beveiliging van de verbruikende app te waarborgen. Er zijn echter enkele gevallen waarin deze validatie niet nodig is, met name in niet-standaardtokentypen. Voordat u deze validatie uitschakelt, moet u zeker weten wat de gevolgen voor de beveiliging zijn. Zie de wiki van de tokenvalidatiebibliotheek voor informatie over de afwegingen.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5404
// The code that's violating the rule is on this line.
#pragma warning restore CA5404
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5404.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Voorbeelden van pseudocode
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;
    }
}
Oplossing
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;
    }
}