Share via


CA5365: Inaktivera inte HTTP-rubrikkontroll

Property Värde
Regel-ID CA5365
Rubrik Inaktivera inte HTTP-rubrikkontroll
Kategori Säkerhet
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Nej

Orsak

Ställ in EnableHeaderCheckingfalse.

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 EnableHeaderCheckingtrue. 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;
    }
}