IIS 7.0에서 호스팅되는 웹 사이트를 방문할 때 오류 메시지: "HTTP 오류 404.11-URL_DOUBLE_ESCAPED"

증상

인터넷 정보 서비스(IIS) 7.0에서 호스팅되는 웹 사이트의 경우 웹 사이트를 방문 하면 다음과 유사한 오류 메시지가 나타날 수 있습니다.
서버 오류
--------------------------------------------------------------------------------
HTTP 오류 404.11-URL_DOUBLE_ESCAPED
HRESULT: 0
HRESULT 설명 # 작업이 완료 되었습니다.

원인

웹 서버에 HTTP 요청 이중 이스케이프 시퀀스가 있습니다. 그러나를 이중 이스케이프 시퀀스를 거부 하는 웹 서버에 요청 필터링 기능이 구성 됩니다.

해결 방법

이 문제를 해결 하려면 다음이 단계를 수행 합니다.

참고: 다음이 단계를 수행한 후에 IIS를 실행 하는 서버의 보안 수준을 줄어들 수 있습니다. 따라서, allowDoubleEscaping 속성을 True로 설정 하기 전에 관련 된 위험을 고려 합니다.
  1. 시작, 검색 시작 상자에 메모장 입력 프로그램 목록에서 메모장 을 마우스 오른쪽 단추로 클릭 하 고 관리자 권한으로 실행을 클릭 합니다. 관리자 암호 또는 확인 메시지가 나타나면 암호를 입력 하거나 계속을 클릭 합니다.
  2. 파일 메뉴에서 열기를 클릭하고 파일 이름 상자에 %windir%\System32\inetsrv\config\applicationHost.config 를 입력한 다음 열기를 클릭합니다.
  3. ApplicationHost.config 파일에서 requestFiltering XML 요소를 찾습니다.
  4. AllowDoubleEscaping 속성의 값을 True로 변경 합니다. 이렇게 하려면 다음 예제 코드에서는 유사한 코드를 사용 합니다.
    <requestFiltering allowDoubleEscaping="true">
  5. 파일 메뉴에서 저장을 클릭 합니다.
  6. 메모장을 종료 합니다.
중요: 이중 이스케이프 시퀀스를 사용 하면 IIS를 실행 하는 서버의 보안 수준이 떨어질 수 있습니다.

바로 이전 단계 applicationHost.config 파일을 편집 되며 서버 수준에서이 설정을 구성 합니다. 이 설정을 구성 하려면 Appcmd 명령을 사용할 수도 있습니다. 이렇게 하려면, 다음 단계를 수행하십시오.
  1. 시작을 클릭하고, 실행을 클릭한 후 열기 상자에 cmd를 입력합니다.
  2. 다음 명령을 입력 하 고 enter 키를 누릅니다.

    C: CD %windir%\system32\inetsrv

  3. 다음 명령 중 하나를 실행 합니다.
    • Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
      참고: 이렇게 하면 "기본 웹 사이트"의 루트 폴더에서 Web.config파일을 만들거나 구성하여 "기본 웹 사이트"만을 위한 이 설정을 구성합니다.
    • appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
      참고: 이렇게 하면 위치 태그를 사용하여 ApplicationHost.config 파일에서 "기본 웹 사이트"만을 위한 이 설정을 구성합니다.
속성

문서 ID: 942076 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백