[Tip] Xss 필터링

2010. 9. 14. 17:32이것저것





참고 사이트 : 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"));

... 중략 ...
# 솔직히, 상당히 쉬운 필터링 방법을 제공해준다. #

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");
    }
... 중략 ...

이렇게 하면 "<", ">"와 관련한 문자열, ", '에 해당하는 문자열을 인코딩된 문자로 변경하여, 좀더 안정적인 서비스를 제공할 수 있다.