CA5365: Non disabilitare il controllo dell'intestazione HTTP
Proprietà | valore |
---|---|
ID regola | CA5365 |
Title | Non disabilitare il controllo delle intestazioni HTTP |
Categoria | Sicurezza |
La correzione causa un'interruzione o meno | Non causa un'interruzione |
Abilitato per impostazione predefinita in .NET 9 | No |
Causa
Impostare EnableHeaderChecking su false
.
Descrizione regola
Il controllo dell'intestazione HTTP abilita la codifica dei caratteri \r
ritorno a capo e di nuova riga e \n
, presenti nelle intestazioni di risposta. Questa codifica consente di evitare attacchi injection che sfruttano un'applicazione che restituisce dati non attendibili contenuti nell'intestazione.
Come correggere le violazioni
Impostare EnableHeaderChecking su true
. In alternativa, rimuovere l'assegnazione a false
perché il valore predefinito è true
.
Quando eliminare gli avvisi
Le continuazioni di intestazioni HTTP si basano sulle intestazioni che si estendono su più righe e richiedono nuove righe. Se è necessario usare le continuazioni di intestazione, è necessario impostare la EnableHeaderChecking proprietà su false
. Il controllo delle intestazioni ha un impatto sulle prestazioni. Se si è certi di aver già eseguito i controlli corretti, disattivare questa funzionalità può migliorare le prestazioni dell'applicazione. Prima di disabilitare questa funzionalità, assicurarsi di aver già preso le precauzioni corrette in questa area.
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 CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365
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.CA5365.severity = none
Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.
Esempi di pseudo-codice
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = false;
}
}
Soluzione
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = true;
}
}