Condividi tramite


CA5365: Non disabilitare il controllo dell'intestazione HTTP

Proprietà valore
ID regola CA5365
Titolo Non disabilitare il controllo delle intestazioni HTTP
Categoria Sicurezza
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 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;
    }
}