CA5363 : Ne pas désactiver la validation de demandes
Propriété | Value |
---|---|
Identificateur de la règle | CA5363 |
Titre | Ne pas désactiver la validation de demandes |
Catégorie | Sécurité |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | Non |
Cause
L’attribut ValidateInput
est défini sur false
pour une classe ou une méthode.
Description de la règle
La validation des demandes est une fonctionnalité de ASP.NET qui examine les requêtes HTTP et détermine si elles contiennent du contenu potentiellement dangereux qui peut entraîner des attaques par injection, y compris des scripting inter-site.
Comment corriger les violations
Définissez l’attribut ValidateInput
sur true
ou supprimez-le entièrement. Vous pouvez également utiliser AllowHTMLAttribute
pour autoriser le code HTML dans des parties spécifiques de l’entrée.
Quand supprimer les avertissements
Vous pouvez supprimer cette violation si toute la charge utile dans la requête HTTP entrante est approvisionnée à partir d’une entité approuvée et n’a pas pu être falsifiée par une personne mal intentionnée avant ou pendant le transport.
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 CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
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.CA5363.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemples de pseudo-code
Violation
L’exemple de pseudo-code suivant illustre le modèle détecté par cette règle. Cela désactive la validation d’entrée.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Solution
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}