HttpRuntimeSection.EnableHeaderChecking Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy sprawdzanie nagłówka jest włączone.
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
Wartość właściwości
true
jeśli sprawdzanie nagłówka jest włączone; w przeciwnym razie , false
. Wartość domyślna to true
.
- Atrybuty
Przykłady
W poniższym przykładzie pokazano, jak używać EnableHeaderChecking właściwości .
// 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
Uwagi
Celem tej właściwości jest włączenie kodowania znaków powrotu karetki i znaków \r
nowego wiersza oraz \n
, które znajdują się w nagłówkach odpowiedzi.
W nagłówkach odpowiedzi dla ruchu wychodzącego znaki reprezentowane przez kody 0x1F i poniżej są kodowane, a także znak 0x7F (usuń znak). Jedynym wyjątkiem jest to, że znak 0x09 (znak tabulacji) jest niezmodyfikowany.
To kodowanie może pomóc uniknąć ataków polegających na wstrzyknięciu, które wykorzystują aplikację, która echem niezaufanych danych zawartych w nagłówku.
Uwaga
Ta właściwość nie ma zastosowania do samego wiersza stanu (kod stanu i opis stanu), ale powinna być stosowana do innych nagłówków. Mimo że <parametr httpRuntime> można ustawić na dowolnym poziomie, ta właściwość ma zastosowanie tylko na poziomie maszyny i aplikacji.
Gdy ta właściwość to true
, która jest wartością domyślną, \r
znaki lub \n
znalezione w nagłówku odpowiedzi są kodowane w %0d
elementy i %0a
. Powoduje to pokonanie ataków polegających na wstrzyknięciu nagłówka, dzięki czemu wstrzyknięty materiał jest częścią tego samego wiersza nagłówka. Może to spowodować przerwanie odpowiedzi, ale nie powinno otwierać wektorów ataku na klienta. Powtarzanie niezaufanych danych nigdy nie jest dobrym pomysłem w żadnej sytuacji.
Ważne
Kontynuacje nagłówka HTTP polegają na nagłówkach obejmujących wiele wierszy i wymagają w nich nowych wierszy. Jeśli musisz użyć kontynuacji nagłówka, musisz ustawić EnableHeaderChecking właściwość na false
wartość . Ponieważ istnieje wpływ na wydajność podczas przeglądania nagłówków, jeśli masz pewność, że już przeprowadzasz odpowiednie kontrole, wyłączenie tej funkcji może poprawić wydajność aplikacji. Przed wyłączeniem tej funkcji upewnij się, że już podejmujesz odpowiednie środki ostrożności w tym obszarze.