CA5365: Nezakazujte kontrolu hlaviček HTTP

Vlastnost Hodnota
ID pravidla CA5365
Název Nezakazovat kontrolu hlaviček HTTP
Kategorie Zabezpečení
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení v .NET 8 No

Příčina

Nastavte EnableHeaderChecking na hodnotu false.

Popis pravidla

Kontrola hlaviček HTTP umožňuje kódování znaků návratu na začátek řádku a nového řádku \r a \n, které jsou nalezeny v hlavičce odpovědi. Toto kódování může pomoct vyhnout se útokům prostřednictvím injektáže, které zneužívají aplikaci, která odráží nedůvěryhodná data obsažená v hlavičce.

Jak opravit porušení

Nastavte EnableHeaderChecking na hodnotu true. Nebo odeberte přiřazení false , protože výchozí hodnota je true.

Kdy potlačit upozornění

Pokračování hlaviček HTTP závisí na záhlaví, která pokrývají více řádků a vyžadují v nich nové řádky. Pokud potřebujete použít pokračování záhlaví, je nutné nastavit EnableHeaderChecking vlastnost na false. Kontrola hlaviček má vliv na výkon. Pokud jste si jistí, že už provádíte správné kontroly, vypnutí této funkce může zlepšit výkon aplikace. Než tuto funkci zakážete, ujistěte se, že už v této oblasti provádíte správná opatření.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Příklady pseudokódu

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = false;
    }
}

Řešení

using System;
using System.Web.Configuration;

class TestClass
{
    public void TestMethod()
    {
        HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
        httpRuntimeSection.EnableHeaderChecking = true;
    }
}