참고 사이트 : http://josephoconnell.com/java/xss-html-filter/
XSS 필터링 처리 해보기 :
1. 해당 사이트에서 : Download 로 패키지를 다운로드 받는다.'
2. WEB-INF/lib 폴더에 다운받은 html_filter.zip 파일을 저장한다.
3. 서버로 넘어온 스트링에 대해서 다음과 같은 처리를 수행한다.
import com.josephoconnell.html.HTMLInputFilter;
... 중략 ...
String cont = new HTMLInputFilter().filter(request.getParameter("cont"));
... 중략 ...
... 중략 ...
String cont = new HTMLInputFilter().filter(request.getParameter("cont"));
... 중략 ...
# 솔직히, 상당히 쉬운 필터링 방법을 제공해준다. #
4. 필터링 처리된 내용을 DB에 저장한다.
# HTMLInputFilter().filter()
이 메소드는 XSS 공격에 대한 방어 코드로 문자열을 변경하는 작업을 해준다.
만약 태그에 대해서 필터링까지 처리해주고자 한다면 다음과 같이 처리해주자..
... 중략 ...
private String filter(String input) {
if(input==null) {
return null;
}
String clean = new HTMLInputFilter().
filter(input.replaceAll("\"", "%22").replaceAll("\'","%27"));
return clean.replaceAll("<", "%3C").replaceAll(">", "%3E");
}
... 중략 ...
private String filter(String input) {
if(input==null) {
return null;
}
String clean = new HTMLInputFilter().
filter(input.replaceAll("\"", "%22").replaceAll("\'","%27"));
return clean.replaceAll("<", "%3C").replaceAll(">", "%3E");
}
... 중략 ...
이렇게 하면 "<", ">"와 관련한 문자열, ", '에 해당하는 문자열을 인코딩된 문자로 변경하여, 좀더 안정적인 서비스를 제공할 수 있다.
'WEB_Programming' 카테고리의 다른 글
JVM Tuning (143) | 2009.12.11 |
---|---|
내 웹페이지를 시작페이지로 걸기 (0) | 2009.11.06 |
Https 로 요청되었는지 확인 isSecure (1) | 2009.11.04 |
Eclipse 3.5 JBoss 5.1.0 and JAX-WS 2.1 setup. (0) | 2009.10.28 |
JDBC를 이용한 사용자 정의 SQL Object를 저장하고, 탐색하는 방법 (0) | 2009.10.23 |