클래식 ASP 스크립트 오류 메시지가 웹 브라우저에 기본으로 표시되지 않습니다.

등록일시: 2009-04-21 14:44,  수정일시: 2013-11-20 15:15
조회수: 23,435
이 문서는 IIS 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.

이전 버전의 IIS에서는 클래식 ASP 스크립트의 오류 메시지가 웹 브라우저에 기본으로 전송되었습니다. 그러나, 오류 메시지의 내용 중에 악의적인 사용자에 의해서 이용될 소지가 다분한 민감한 정보들이 노출될 가능성 때문에, IIS 7.0에서는 클래식 ASP 스크립트의 오류 메시지가 더 이상 웹 브라우저로 기본 전송되지 않습니다. IIS 7.0 환경에서는 클래식 ASP 스크립트 오류가 발생하는 경우, 다음과 같은 기본 오류 메시지가 나타납니다:

An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.

기본 ASP 스크립트 오류 메시지의 내용은 마음대로 정의할 수도 있고, 본래의 스크립트 오류 메시지를 웹 브라우저로 전송할 수 있습니다.

노트: 보안적인 측면에서 가장 좋은 방법은 개발 환경이나 테스트 컴퓨터에서만 ASP 오류 메시지를 웹 브라우저에 전송하는 것입니다. 웹 브라우저에 스크립트 오류 메시지를 전송하면 무심결에 공격 받을 수 있는 정보들이 여러분이 의도한 수준 이상으로 노출될 수 있습니다.

사용자 접근 제어

본문의 내용들을 따라해보려면 관리자 권한을 갖고 있는 계정을 사용해야 합니다. 다음과 같은 두 가지 방법 중, 한 가지를 사용합니다:

  • 로컬 관리자 계정으로 컴퓨터를 사용합니다.
  • 만약, 관리자 권한을 갖고 있는 계정을 사용하고는 있지만 로컬 관리자 계정은 아닌 경우, 응용 프로그램을 실행하거나 명령 프롬프트를 열 때, "관리자 권한으로 실행" 옵션을 사용해서 실행합니다.

이런 준비가 필요한 이유는 윈도우 비스타와 윈도우 서버 2008의 사용자 접근 제어(UAC) 구성 요소가 IIS 7.0의 구성 설정에 대한 관리상의 접근을 제한하기 때문입니다. 사용자 접근 제어에 대한 보다 자세한 내용은 다음 문서를 참고하시기 바랍니다:

클래식 ASP 오류 메시지 사용자 정의

다음과 같은 속성값들을 조정해서 클래식 ASP의 오류 메시지 관련 설정을 조정할 수 있습니다:

  • scriptErrorMessage
    이 선택적 문자열 속성은 디버깅 오류 메시지 대신, 브라우저에 전송될 기본 오류 메시지를 지정합니다.
  • scriptErrorSentToBrowser
    이 선택적 문자열 속성이 활성화되면 디버깅 세부 정보를 클라이언트 브라우저에 전송합니다.

이 두 가지 속성값들은 IIS 관리자를 사용해서 설정이 가능합니다. 먼저, IIS 관리자를 실행하고 클래식 ASP 스크립트 오류 메시지를 제어할 사이트나 응용 프로그램을 선택한 다음, "ASP" 기능 아이콘을 마우스로 더블 클릭합니다.

그런 다음, ASP 기능의 속성 목록에서 "스크립트 오류 메시지 (Scripts Error Message)" 속성과 "브라우저에 오류 전송 (Send Errors To Browser)" 속성 값을 원하는 값으로 설정합니다.

이 속성값들은 명령 프롬프트 도구인 AppCmd.exe를 사용해서 다음 명령어로 설정할 수도 있습니다:

appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorMessage:"An error occurred."
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /scriptErrorSentToBrowser:"False"

추가 정보

클래식 ASP의 디버깅 관련 옵션에 대한 보다 다양한 정보는 마이크로소프트에서 제공하는 IIS.net 웹 사이트의 IIS 구성 설정 레퍼런스를 참고하시기 바랍니다:

클래식 ASP 스크립트 오류 메시지를 웹 브라우저에 전송하는 것에 대한 또 다른 대안으로 실패한 추적 요청 기능을 활성화시키는 방안도 있습니다. 즉, 오류가 발생한 경우 ASP 엔진이 생성한 HTTP 500 오류를 자동적으로 추적해서 로그를 기록하도록 규칙을 추가할 수 있습니다. 그리고, 서버에 생성된 실패한 요청 추적 로그를 분석해서 오류를 발생시킨 클래식 ASP 소스의 정확한 위치를 찾아낼 수 있습니다. 또 한 가지 중요한 보안상의 이슈는, 실패한 요청 추적 로그는 웹 브라우저를 통해서는 접근하지 못하므로 반드시 서버에서만 문제해결 정보에 접근이 가능하다는 점입니다. 그리고, 실패한 요청 추적을 사용하면 굳이 오류를 재현하지 않아도 실시간으로 모니터링되지 않은 클래식 ASP의 오류를 해결하기에 충분한 상세 정보가 제공됩니다.