Share via


HttpRuntimeSection.EnableHeaderChecking Proprietà

Definizione

Ottiene o imposta un valore che indica se la verifica dell'intestazione è abilitata.

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

Valore della proprietà

true se la verifica dell'intestazione è abilitata; in caso contrario, false. Il valore predefinito è true.

Attributi

Esempio

Nell'esempio seguente viene illustrato come utilizzare la proprietà EnableHeaderChecking.

// 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

Commenti

Lo scopo di questa proprietà è abilitare la codifica dei caratteri \r ritorno a capo e di nuova riga e \n, presenti nelle intestazioni di risposta.

Nelle intestazioni di risposta in uscita, i caratteri rappresentati dai codici 0x1F e di seguito vengono codificati e anche il carattere 0x7F (carattere di eliminazione). L'unica eccezione è che il carattere 0x09 (il carattere di tabulazioni) non è modificato.

Questa codifica può essere utile per evitare attacchi injection che sfruttano un'applicazione che restituisce dati non attendibili contenuti nell'intestazione.

Nota

Questa proprietà non si applica alla riga di stato stessa (codice di stato e descrizione dello stato), ma deve essere applicata ad altre intestazioni. Anche se <httpRuntime> può essere impostato a qualsiasi livello, questa proprietà è applicabile solo a livello di computer e applicazione.

Quando questa proprietà è true, che è l'impostazione predefinita, i \r caratteri o \n trovati in un'intestazione di risposta vengono codificati %0d in e %0a. In questo modo, gli attacchi di tipo header-injection vengono sconfitti rendendo parte del materiale inserito nella stessa riga di intestazione. Ciò potrebbe interrompere la risposta, ma non aprire vettori di attacco contro il client. L'eco dei dati non attendibili non è mai una buona idea in alcuna situazione.

Importante

Le continuazioni dell'intestazione HTTP si basano sulle intestazioni che si estendono su più righe e richiedono nuove righe. Se è necessario usare le continuazioni di intestazione, è necessario impostare la EnableHeaderChecking proprietà su false. Poiché si verifica un impatto sulle prestazioni dall'analisi delle intestazioni, se si è certi di aver già eseguito i controlli corretti, disattivare questa funzionalità può migliorare le prestazioni dell'applicazione. Prima di disabilitare questa funzionalità, assicurarsi di aver già preso le precauzioni corrette in questa area.

Si applica a

Vedi anche