CA5365: HTTP-headercontrole niet uitschakelen

Eigenschap Waarde
Regel-id CA5365
Titel HTTP-headercontrole niet uitschakelen
Categorie Beveiliging
Fix kan brekend of niet-brekend zijn Niet-brekend
Standaard ingeschakeld in .NET 10 Nee
Toepasselijke talen C# en Visual Basic

Oorzaak

Stel EnableHeaderChecking in op false.

Beschrijving van regel

Met HTTP-headercontrole kunt u de codering van de carriage return- en newline-tekens, \r en \n, die zich bevinden in antwoordheaders, inschakelen. Deze codering kan helpen bij het voorkomen van injectieaanvallen die gebruikmaken van een toepassing die niet-vertrouwde gegevens in de header weergeeft.

Hoe schendingen op te lossen

Stel EnableHeaderChecking in op true. Of verwijder de toewijzing naar false omdat de standaardwaarde is true.

Wanneer waarschuwingen onderdrukken

Http-headervervolgingen zijn afhankelijk van headers die meerdere regels omvatten en nieuwe regels erin vereisen. Als u koptekstvervolgingen moet gebruiken, moet u de EnableHeaderChecking eigenschap instellen op false. Het controleren van de headers heeft invloed op de prestaties. Als u zeker weet dat u de juiste controles uitvoert, kunt u deze functie uitschakelen om de prestaties van uw toepassing te verbeteren. Voordat u deze functie uitschakelt, moet u ervoor zorgen dat u al de juiste voorzorgsmaatregelen op dit gebied neemt.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

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

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

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

Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.

Voorbeelden van pseudocode

using System;
using System.Web.Configuration;

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

Oplossing

using System;
using System.Web.Configuration;

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