Megosztás a következőn keresztül:


CA5404: Ne tiltsa le a jogkivonat-érvényesítési ellenőrzéseket

Tulajdonság Érték
Szabályazonosító CA5404
Cím Ne tiltsa le a jogkivonat-érvényesítési ellenőrzéseket
Kategória Biztonság
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

Tulajdonságok beállítása TokenValidationParameters , ValidateAudienceValidateIssuervagy ValidateLifetime a tulajdonság RequireExpirationTimeértékefalse.

Szabály leírása

A jogkivonat-érvényesítési ellenőrzések biztosítják, hogy a jogkivonatok érvényesítése során minden szempontot elemezzen és ellenőrizhessen. Az érvényesítés kikapcsolása biztonsági résekhez vezethet azáltal, hogy lehetővé teszi a nem megbízható jogkivonatok számára az ellenőrzésen keresztüli érvényesítést.

A jogkivonatok érvényesítésének ajánlott eljárásairól a kódtár wikijében talál további információt.

Szabálysértések kijavítása

Adja meg TokenValidationParameters a tulajdonságokat RequireExpirationTime, ValidateAudienceValidateIssuervagy ValidateLifetime a következőttrue: . Vagy távolítsa el a hozzárendeléstfalse, mert az alapértelmezett érték.true

Mikor kell letiltani a figyelmeztetéseket?

Az esetek túlnyomó többségében ez az ellenőrzés elengedhetetlen a fogyasztó alkalmazás biztonságának biztosításához. Vannak azonban olyan esetek, amikor nincs szükség erre az ellenőrzésre, különösen a nem szabványos jogkivonat-típusok esetében. Mielőtt letiltja ezt az ellenőrzést, győződjön meg arról, hogy teljes mértékben átgondolta a biztonsági következményeket. A kompromisszumokkal kapcsolatos információkért tekintse meg a jogkivonat-érvényesítési kódtár wikijét.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Példák pszeudokódokra

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

Megoldás

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