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é par défaut dans .NET 8 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()
    {
    }
}