Udostępnij za pośrednictwem


HttpRuntimeSection.EnableHeaderChecking Właściwość

Definicja

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 falsewartość . 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.

Dotyczy

Zobacz też