XssSaxFilter(XssFilter의 개성된 형태) : XSS 공격이 가능한 HTML 요소를 신뢰할 수 있는 코드로 변환, 삭제하는 기능을 제공, 공격이 가능하지 않은 HTML 요소는 허용- 닫는 태그만 있음 검사하지 않는다.
- 태그의 자식 부모 여부를 따지지 않고 그냥 존재 여부만 판단
- 포함 관계 여부를 판단하지 않기 때문에 성능상으로 더 좋음
- ex 코드 :
mail 서비스, 메세지 보드 서비스는 tag 정보를 그대로 사용해도됨 -> 실제 메시지 보드 내부에서 script문장이 실행 되지 않는 다면 굳이 바꾸지 않아도 됨결론 둘다 전부 lucy-xss-default-sax.xml을 상속받은 xml 파일 읽어와 그에 맞는 패턴을 가진 입력이 들어오면 xssPreventer가 처리 해주는 과정을 가진다.Filtering 시점 : url 호출 시점이 아닌 서버 코드에서 parameter 값을 획득하는 ServletRequest의 getParamter(), getParamterValues(), getParameterMap() 함수가 호출 시 필터링을 해준다.XssPreventDefeneder, XssSaxFilterDefender, XssFilterDefender 3개의 클래스는 lucy-xss-filter의 api를 호출하며 XssPreventerDefender는 XssPreventer를, XssSaxFilterDefender는 XssSaxFilter를, XssFilterDefender는 XssFilter를 사용한다. 여기서 내가 사용한 것은 XssPreventDefender 이다 모든 것에 내부 태그가 없기 때문에 사용함(mail 서비스)