Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

웹개발

이제 웹 기반 응용개발 지식은 거의 필수적으로 요구되는 시대입니다. 구체적인 웹 사이트 개발은 아니더라도 거시적인 웹 기반 서비스에 대한 지식 배양을 위해 할 것이 참 많네요 ^^

[ASP.NET] HTTP Module - Demo1

작성자 : 박종명
최초 작성일 : 2008-06-25 (수요일)
최종 수정일 : 2008-06-25 (수요일)
조회 수 : 3328

시나리오 >>
닷넷 웹 페이지 호출 시 상,하단에 공통 UI 를 삽입한다. 또한 SQL 인젝션 공격에 기초 방어를 위한 입력 값 필터링을 수행한다.  마지막으로 응답헤더에 커스텀 헤더값을 추가한다

1. public class CustomHttpModule : IHttpModule

2. Init 메서드
   application.BeginRequest += (new EventHandler(this.Application_BeginRequest));
   application.EndRequest += (new EventHandler(this.Application_EndRequest));   
   application.Error += new EventHandler(this.Application_Error);

3. BeginRequest 이벤트
   HttpApplication application = (HttpApplication)source;
   HttpContext context = application.Context;
   context.Response.Write("<b>요청 시작</b><hr>");
   for(int i=0;i<context.Request.QueryString.Count;i++){
        string filterString =
             context.Request.QueryString[i].Replace("'","''").Replace(";","").Replace("--","").Replace("=","");
             context.Response.Write(String.Format("변수:{0} - 값:{1}{2}",
             context.Request.QueryString.GetKey(i),filterString,"<br>")
             );
   }

4. EndRequest 이벤트
  HttpApplication application = (HttpApplication)source;
  HttpContext context = application.Context;
  context.Response.Write("<hr><b>요청 끝</b>");  
  context.Response.AppendHeader("Publisher","The MKEX");

5. Error 이벤트
   LogManager.WriteLog(context);

6. 구성파일에 등록
<httpModules>
 <add name="CustomHttpModule"  type="HttpRuntime.CustomHttpModule, HttpRuntime" />   
</httpModules>

 

이름
비밀번호
홈페이지
MI <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요