CA5365: Inaktivera inte HTTP-rubrikkontroll
Property | Värde |
---|---|
Regel-ID | CA5365 |
Title | Inaktivera inte HTTP-rubrikkontroll |
Kategori | Säkerhet |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Nej |
Orsak
Ställ in EnableHeaderChecking på false
.
Regelbeskrivning
HTTP-rubrikkontroll möjliggör kodning av vagnreturen och nya radtecken och \r
\n
, som finns i svarshuvuden. Den här kodningen kan bidra till att undvika inmatningsattacker som utnyttjar ett program som ekar ej betrodda data som finns i huvudet.
Så här åtgärdar du överträdelser
Ställ in EnableHeaderChecking på true
. Eller ta bort tilldelningen till false
eftersom standardvärdet är true
.
När du ska ignorera varningar
HTTP-huvudfortsättningar förlitar sig på rubriker som sträcker sig över flera rader och kräver nya rader i dem. Om du behöver använda rubrikfortsättningar måste du ange EnableHeaderChecking egenskapen till false
. Det finns en prestandapåverkan från att kontrollera rubrikerna. Om du är säker på att du redan gör rätt kontroller kan det förbättra programmets prestanda om du inaktiverar den här funktionen. Innan du inaktiverar den här funktionen bör du se till att du redan vidtar rätt försiktighetsåtgärder i det här området.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA5365
// The code that's violating the rule is on this line.
#pragma warning restore CA5365
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA5365.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.
Exempel på pseudokod
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = false;
}
}
Lösning
using System;
using System.Web.Configuration;
class TestClass
{
public void TestMethod()
{
HttpRuntimeSection httpRuntimeSection = new HttpRuntimeSection();
httpRuntimeSection.EnableHeaderChecking = true;
}
}