Sdílet prostřednictvím


CA5404: Nezakazujte kontroly ověření tokenu

Vlastnost Hodnota
ID pravidla CA5404
Název Nezakazujte kontroly ověření tokenu.
Kategorie Zabezpečení
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení v .NET 10 No

Příčina

Microsoft.IdentityModel.Tokens.TokenValidationParameters Nastavení vlastností RequireExpirationTime, ValidateAudience, ValidateIssuer, nebo ValidateLifetime na false.

Popis pravidla

Kontroly ověření tokenů zajišťují, že při ověřování tokenů se analyzují a ověřují všechny aspekty. Vypnutí ověřování může vést k bezpečnostním otvorům tím, že umožňuje nedůvěryhodným tokenům provádět ověřování.

Další podrobnosti o osvědčených postupech pro ověřování tokenů najdete na wikiwebu knihovny.

Jak opravit porušení

Microsoft.IdentityModel.Tokens.TokenValidationParameters Nastavte vlastnosti RequireExpirationTime, ValidateAudience, ValidateIssuera ValidateLifetime na true. Nebo odeberte přiřazení false , protože výchozí hodnota je true.

Kdy potlačit upozornění

Ve většině případů je toto ověření nezbytné k zajištění zabezpečení aplikace, která využívá. V některých případech však toto ověřování není potřeba, zejména v nestandardních typech tokenů. Než toto ověření zakážete, ujistěte se, že jste plně promysleli důsledky zabezpečení. Informace o kompromisech najdete na wikiwebu knihovny ověřování tokenů.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable CA5404
// The code that's violating the rule is on this line.
#pragma warning restore CA5404

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.CA5404.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Příklady pseudokódu

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;
    }
}

Řešení

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;
    }
}