CA5404 : ne désactivez pas les vérifications de validation de jeton
Propriété | Value |
---|---|
Identificateur de la règle | CA5404 |
Titre | Ne pas désactiver les vérifications de validation des jetons |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Définir les propriétés TokenValidationParametersRequireExpirationTime
, ValidateAudience
, ValidateIssuer
ou ValidateLifetime
sur false
.
Description de la règle
Les vérifications de validation des jetons garantissent que lors de la validation des jetons, tous les aspects sont analysés et vérifiés. La désactivation de la validation peut entraîner des failles de sécurité en autorisant des jetons non approuvés à passer l’étape de validation.
Vous trouverez plus d’informations sur les meilleures pratiques pour la validation des jetons sur le wiki de la bibliothèque.
Comment corriger les violations
Définissez les propriétés TokenValidationParametersRequireExpirationTime
, ValidateAudience
, ValidateIssuer
ou ValidateLifetime
sur true
. Vous pouvez également supprimer l’affectation à false
, car la valeur par défaut est true
.
Quand supprimer les avertissements
Dans la grande majorité des cas, cette validation est essentielle pour garantir la sécurité de l’application consommatrice. Toutefois, dans certains cas, cette validation n’est pas nécessaire, en particulier dans les types de jetons non standard. Avant de désactiver cette validation, veillez à bien réfléchir aux implications en matière de sécurité. Pour plus d’informations sur les compromis, consultez le wiki de la bibliothèque de validation de jetons.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA5404
// The code that's violating the rule is on this line.
#pragma warning restore CA5404
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA5404.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemples de pseudo-code
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;
}
}
Solution
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;
}
}