HttpRuntimeSection.EnableHeaderChecking Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si la vérification de l’en-tête est activée.
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
Valeur de propriété
true si la vérification de l’en-tête est activée ; sinon, false. La valeur par défaut est true.
- Attributs
Exemples
L’exemple suivant montre comment utiliser la EnableHeaderChecking propriété.
// 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
Remarques
L’objectif de cette propriété est d’activer l’encodage du retour chariot et des caractères de nouvelle ligne, et \n, \r qui sont trouvés dans les en-têtes de réponse.
Dans les en-têtes de réponse sortants, les caractères représentés par les codes 0x1F et ci-dessous sont encodés et également le caractère 0x7F (caractère de suppression). La seule exception est que le caractère 0x09 (le caractère tabulation) n’est pas modifié.
Cet encodage peut aider à éviter les attaques par injection qui exploitent une application qui renvoie des données non approuvées contenues dans l’en-tête.
Note
Cette propriété ne s’applique pas à la ligne d’état elle-même (code d’état et description de l’état), mais doit s’appliquer à d’autres en-têtes. Bien que <httpRuntime> puisse être défini à n’importe quel niveau, cette propriété s’applique uniquement au niveau de l’ordinateur et de l’application.
Lorsque cette propriété est true, qui est la valeur par défaut, le ou \n les \r caractères trouvés dans un en-tête de réponse sont encodés dans %0d et %0a. Cela élimine les attaques par injection d’en-tête en faisant partie du matériel injecté de la même ligne d’en-tête. Cela peut interrompre la réponse, mais ne doit pas ouvrir de vecteurs d’attaque sur le client. L’écho des données non approuvées n’est jamais une bonne idée dans n’importe quelle situation, cependant.
Important
Les continuations d’en-tête HTTP s’appuient sur des en-têtes couvrant plusieurs lignes et nécessitent de nouvelles lignes. Si vous devez utiliser des continuations d’en-tête, vous devez définir la propriété EnableHeaderChecking sur false. Étant donné qu’il existe un impact sur les performances de l’analyse des en-têtes, si vous êtes certain que vous effectuez déjà les vérifications appropriées, la désactivation de cette fonctionnalité peut améliorer les performances de votre application. Avant de désactiver cette fonctionnalité, assurez-vous que vous prenez déjà les précautions appropriées dans ce domaine.