CA5363: Non disabilitare la convalida delle richieste
Proprietà | valore |
---|---|
ID regola | CA5363 |
Title | Non disabilitare la convalida delle richieste |
Categoria | Sicurezza |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | No |
Causa
L'attributo ValidateInput
è impostato su false
per una classe o un metodo.
Descrizione regola
La convalida delle richieste è una funzionalità di ASP.NET che esamina le richieste HTTP e determina se contengono contenuto potenzialmente pericoloso che può causare attacchi injection, incluso lo scripting intersito.
Come correggere le violazioni
Impostare l'attributo ValidateInput
su true
o eliminarlo completamente. In alternativa, usare AllowHTMLAttribute
per consentire il codice HTML in parti specifiche dell'input.
Quando eliminare gli avvisi
È possibile eliminare questa violazione se tutto il payload nella richiesta HTTP in ingresso viene originato da un'entità attendibile e non può essere manomesso da un antagonista prima o durante il trasporto.
Eliminare un avviso
Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.
#pragma warning disable CA5363
// The code that's violating the rule is on this line.
#pragma warning restore CA5363
Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none
su nel file di configurazione.
[*.{cs,vb}]
dotnet_diagnostic.CA5363.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Esempi di pseudo-codice
Violazione
Nell'esempio di pseudo-codice seguente viene illustrato il modello rilevato da questa regola. In questo modo viene disabilitata la convalida dell'input.
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(false)]
public void TestActionMethod()
{
}
}
Soluzione
using System.Web.Mvc;
class TestControllerClass
{
[ValidateInput(true)]
public void TestActionMethod()
{
}
}