XSS 방어를 위한 보안필터를 만들어 적용할 수 있다.
RequestWrapper.java request를 가로채서 공격문자를 필터링할 메소드를 가진 클래스
package filter; import javax.servlet.http.HttpServletRequest; public final class RequestWrapper extends HttpServletRequestWrapper { //필요한 필터릴 룰셋을 추가
|
XssFilter.java 필터 설정 메소드
package filter; import java.io.IOException; import javax.servlet.Filter; public class XssFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException{ |
web.xml web.xml에 필터 설정(하기 빨간색 표시 부분)
<?xml version="1.0" encoding="UTF-8"?> |
* 필터 적용 테스트 페이지
filterTest1.jsp에서 filterTest_proc.jsp 로 전송되는 데이터에서 필터에 의해 replaceAll되는 메세지는 제거 되는것을 볼 수 있음.
filterTest1.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" |
filterTest_proc.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" |
전송페이지에서 <script>alert('test1');</script> 와 같이 xss 공격가능여부를 테스트해볼 스크립트 문자열을
보냈을때 Filter에서 이를 걸러서 script라는 문자열이 제거된 형태로 결과가 출력되는것을 볼 수 있다.
'Java & JSP' 카테고리의 다른 글
키보드로 문자열 입력받기 (0) | 2015.02.26 |
---|---|
List타입으로 담긴 데이터를 JSON 타입으로 출력하기 (0) | 2015.02.22 |
JSP로 간단한 S/N 체크하는 로직 구현 (0) | 2015.02.08 |
java.sql.SQLException: 데이터 크기가 해당 유형의 최대 크기보다 큽니다 - 오류 해결 (0) | 2012.11.16 |
Java의 Calendar 클래스로 오전/오후 구분시 유의점 (0) | 2012.10.10 |
댓글