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 해야 합니다. 헤더를 보면 성능에 영향을 주므로 올바른 검사를 이미 수행하고 있다고 확신하는 경우 이 기능을 해제하면 애플리케이션의 성능이 향상될 수 있습니다. 이 기능을 사용하지 않도록 설정하기 전에 이 영역에서 이미 올바른 예방 조치를 취하고 있는지 확인합니다.