본문 바로가기

[IIS] IIS Custom Error Page

안자매 2022. 3. 21.
반응형


개인적으로 공부하면서 기록하는 공간으로

잘못된 정보는 댓글을 통해 알려주시면 감사하겠습니다 :-)

▪ ▪ ▪ ▪ ▪

 

 

IIS Custom Error Page

소스 코드, 예외처리, 시스템 콜, API 함수 호출 등과 연관된 에러가 발생할 경우 실행환경, 개발 정보, 사용자, 관련 데이터에 대한 민감한 정보를 포함하는 오류 메시지를 출력하거나 잠재적 위험에 노출될 수 있다.

모든 에러(403 error, 404 error, 500 error, DB error, Application Error 등) 발생 시 별도의 에러 페이지를 생성하고 해당 에러 페이지로 이동 가능하도록 구현해야한다. 또한 별도 WAS 웹 서버(apache, iis 등)와 연동하여 사용하는 경우는 WAS에 에러페이지 처리와 함께 웹 서버에서 에러페이지 설정을 적용하여 시스템 구성 시의 디폴트 오류 페이지나 메시지의 어떤 정보도 노출되지 않도록 해야한다.

 

IIS Setting

C# 페이지에 대한 오류페이지 설정 : ASP.NET 영역의 .NET 오류페이지에서 설정

C# 외의 페이지(html, asp 등)에 대한 오류페이지 설정 : IIS 영역의 오류페이지에서 설정

 

web.config Setting 

1) C#

<system.web>
			.
			.
			.
    <customErrors mode="On">
		    <error redirect="Custom Error Page URL" statusCode="Error Code(404, 500 ...)" />
    </customErrors>
</system.web>

customErrors 속성
mode (필수)
: 사용자 지정 오류를 결정하는 속성. 개발자들이 테스트 할 때에는 확인이 가능하고, 라이브 서버에서는 사용자들이 굳이 오류 메시지를 볼 필요는 없으니, RemoteOnly로 설정
- On : 사용자 지정 오류 페이지 또는 런타임 오류 메시지는 로컬 또는 원격 인지에 관계 없이 모든 방문자에게 표시
- Off : 기본적으로 예외 정보를 표시하도록 서버가 구성됨. 예외 정보는 로컬 또는 원격 인지에 관계 없이 모든 방문자에게 표시 되도록 지정
- RemoteOnly : 사용자 지정 오류 페이지 또는 런타임 오류 YSOD 메시지가 원격 방문자에게 표시 되는 반면, 예외 세부 정보는 로컬 방문자에게 표시
redirectMode (선택)
: 사용자가 사용자 지정 오류 페이지로 리디렉션 될 경우 URL이 변경 여부를 나타냄
- ResponseRedirect : URL 변경이 됨 (Default)
- ResponseRewrite : URL 변경이 되지 않음
defaultRedirect (선택)
: 오류가 발생할 경우, 브라우저에 표시할 기본 URL 지정

1) C# 외

<system.webServer>
			.
			.
			.
    <httpErrors errorMode="DetailedLocalOnly">
				<remove statusCode="Error Code(404, 500 ...)" subStatusCode="-1" />
				<error 
							statusCode="Error Code" 
							prefixLanguageFilePath="" 
							path="Error Page Path" 
							responseMode="ExecuteURL" />
    </httpErrors>
</system.webServer>

errorMode
: HTTP 오류가 활성화되었는지 여부를 지정
- DetailedLocalOnly :  로컬 컴퓨터에서 요청한 경우 자세한 오류 정보를 반환하고 외부컴퓨터에서 요청한 경우 사용자 지정 오류 메세지를 반환
- Custom : 모듈 또는 서버가 생성하는 오류를 사용자가 지정한 사용자 정의 페이지로 바꿈
- Detailed : 자세한 오류 정보를 클라이언트로 다시 보냄

 

 

Reference

https://docs.microsoft.com/en-us/iis/configuration/system.webServer/httpErrors/
https://im-first-rate.tistory.com/11

 

 

댓글