apache-java(webwork, 또는 struts2)를 사용하고 있는데.

 

SQL Injection 공격이 들어왔는데, 약간 잘못되게 들어와서 귀찮게 하는 경우의 방어를 이렇게 하였다.

 

1. 아파치 막음

  - 패턴을 찾아 막는다.

  - ip, referer, form 패턴을 찾아서 막는다.

 

2. 어플단 막음

  - 1. Action단에서 막음 (webwork)

    2. 전체 Action(global)을 막음 (webwork)

    3. 자바 소스안에서 막는다.

 

 

이중 webwork단에서 막는 법을 잠깐 소개한다. 사실 나는 원천적적으로 봉쇄하는 아파치 막음을 더욱 더 선호한다.

1. 한 Action 에서 발생하는 처리

<action name="simple" class="com.google.gmail.SimipleAction">
  <exception-mapping exception="java.lang.NoSuchMethodException" result="redirect"/>

  <exception-mapping exception="SQLException" result="redirect"/>
  <result name="redirect" type="redirect">redirect.jsp</result>
</action>

 

2. webwork 설정 파일에서 특정 Exception 발생시 처리

 

 <global-results> 
  <result name="redirect" type="redirect">redirect.jsp</result>
 </global-results> 

 <global-exception-mappings> 
  <exception-mapping exception="java.lang.NoSuchMethodException" result="redirect"/>

  <exception-mapping exception="SQLException" result="redirect"/>
</global-exception-mappings>

 

 

'web' 카테고리의 다른 글

인증서 문제  (0) 2008.12.15
Apache SSL 서버 만들기  (0) 2008.11.25
아파치에서 MaxClients 수정  (0) 2008.09.02
oscache 사용 간단기  (0) 2008.08.27
인터넷 익스플로러 버전별 유저 에이전트 정리  (0) 2008.08.14
Posted by '김용환'
,