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 |