Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| 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 10 | 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;
}
}