HttpRuntimeSection.EnableHeaderChecking 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,表示是否啟用標頭檢查。
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
屬性值
如果啟用標頭檢查則為 true
,否則為 false
。 預設值是 true
。
- 屬性
範例
下列範例將示範如何使用 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
備註
此屬性的目的是要啟用歸位字元和換行符號的編碼, \r
以及在 \n
回應標頭中找到的 。
在輸出響應標頭中,由程式碼0x1F和下方所代表的字元會編碼,也會編碼字元0x7F (删除字符) 。 唯一的例外是0x09 (索引卷标字符) 未修改字元。
此編碼有助於避免插入式攻擊,這些攻擊會利用標頭所包含不受信任資料的應用程式。
注意
此屬性不適用於狀態行本身 (狀態代碼和狀態描述) ,但應該套用至其他標頭。 雖然 <HTTPRuntime> 可以在任何層級設定,但此屬性只適用於計算機和應用層級。
當此屬性為 true
時,這是預設值, \r
回應標頭中找到的 或 \n
字元會編碼為 %0d
和 %0a
。 這會藉由將插入的材質部分設定為相同的標頭行,來破壞標頭插入式攻擊。 這可能會中斷回應,但不應該針對客戶端開啟攻擊向量。 不過,在任何情況下,回顯不受信任的數據絕不是個不錯的主意。
重要
HTTP 標頭接續依賴跨越多行的標頭,並需要在其中使用新行。 如果您需要使用標頭接續,您必須將 EnableHeaderChecking 屬性設定為 false
。 由於查看標頭會對效能造成影響,如果您確定已經執行正確的檢查,關閉此功能可以改善應用程式的效能。 在停用此功能之前,請確定您已在此區域中採取正確的預防措施。