HttpRuntimeSection.EnableHeaderChecking Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de headercontrole is ingeschakeld.
public:
property bool EnableHeaderChecking { bool get(); void set(bool value); };
[System.Configuration.ConfigurationProperty("enableHeaderChecking", DefaultValue=true)]
public bool EnableHeaderChecking { get; set; }
[<System.Configuration.ConfigurationProperty("enableHeaderChecking", DefaultValue=true)>]
member this.EnableHeaderChecking : bool with get, set
Public Property EnableHeaderChecking As Boolean
Waarde van eigenschap
true als de headercontrole is ingeschakeld; anders, false. De standaardwaarde is true.
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u de EnableHeaderChecking eigenschap gebruikt.
// Get the EnableHeaderChecking property value.
Response.Write("EnableHeaderChecking: " +
configSection.EnableHeaderChecking + "<br>");
// Set the EnableHeaderChecking property value to true.
configSection.EnableHeaderChecking = true;
' Get the EnableHeaderChecking property value.
Response.Write("EnableHeaderChecking: " & _
configSection.EnableHeaderChecking & "<br>")
' Set the EnableHeaderChecking property value to true.
configSection.EnableHeaderChecking = True
Opmerkingen
Het doel van deze eigenschap is het inschakelen van codering van de regelterugloop en nieuwe regeltekens, en \r, \n die worden gevonden in antwoordheaders.
In uitgaande antwoordheaders worden de tekens die worden vertegenwoordigd door de codes 0x1F en hieronder gecodeerd en ook het teken 0x7F (teken verwijderen). De enige uitzondering is dat het teken 0x09 (het tabteken) ongewijzigd is.
Deze codering kan helpen bij het voorkomen van injectieaanvallen die gebruikmaken van een toepassing die gebruikmaakt van niet-vertrouwde gegevens die zijn opgenomen in de header.
Note
Deze eigenschap is niet van toepassing op de statusregel zelf (statuscode en statusbeschrijving), maar moet van toepassing zijn op andere headers. Hoewel <httpRuntime> op elk niveau kan worden ingesteld, is deze eigenschap alleen van toepassing op computer- en toepassingsniveau.
Wanneer deze eigenschap is true, wat de standaardwaarde is, worden de \r tekens \n die in een antwoordheader worden gevonden, gecodeerd in %0d en %0a. Hierdoor worden header-injectieaanvallen verslagen door het geïnjecteerde materiaalgedeelte van dezelfde headerlijn te maken. Dit kan het antwoord breken, maar mag geen aanvalsvectoren openen tegen de client. Het echoën van niet-vertrouwde gegevens is echter nooit een goed idee in elke situatie.
Important
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. Omdat er invloed is op de prestaties van headers, kunt u de prestaties van uw toepassing verbeteren als u zeker weet dat u al de juiste controles uitvoert. Als u deze functie uitschakelt, kunt u de prestaties van uw toepassing verbeteren. Voordat u deze functie uitschakelt, moet u ervoor zorgen dat u al de juiste voorzorgsmaatregelen op dit gebied neemt.