HTMLFiltertag xss 실행시에 특수문자 치환
- 작성자 :
- 오*나
- 작성일 :
- 2019-09-16 12:33:44
- 조회수 :
- 2,531
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
web.xml에서 htmlfilter 설정을 한 후에 controller의 메소드를 해당 url에 vo 파라미터를 보내는 방식으로 실행했습니다.
디버깅해보니까 html필터를 거쳐서 controller단의 modelattributed로 설정한 VO에는 치환된 vo 파라미터 값으로 잘 들어갔더라고요. 그런데 vo가 jsp 화면에 input value로 el식으로 ${VO.memCode} 표현하니까 특수문자 그대로 <script> 코드가 들어가네요. 치환된 특수문자가 다시 변환되는 과정이 더 있는건가요? 이상하게 controlle에서 model에 vo를 담은 다음에 jsp 부분에서 보여주면 치환된 특수문자 lt; 이런식으로 잘 보이네요. 이유가 뭘까요? model에 하나하나 vo 담기에는 전체적으로 바꿔야해서 이 방법은 피하려고 합니다.
디버깅해보니까 html필터를 거쳐서 controller단의 modelattributed로 설정한 VO에는 치환된 vo 파라미터 값으로 잘 들어갔더라고요. 그런데 vo가 jsp 화면에 input value로 el식으로 ${VO.memCode} 표현하니까 특수문자 그대로 <script> 코드가 들어가네요. 치환된 특수문자가 다시 변환되는 과정이 더 있는건가요? 이상하게 controlle에서 model에 vo를 담은 다음에 jsp 부분에서 보여주면 치환된 특수문자 lt; 이런식으로 잘 보이네요. 이유가 뭘까요? model에 하나하나 vo 담기에는 전체적으로 바꿔야해서 이 방법은 피하려고 합니다.
A
안녕하세요.
표준프레임워크센터 입니다.
HTMLTagFilter에서 "<" 또는 ">" 기호에 대하여
Escape 처리를 하게 됩니다.
이것은 Filter 레벨에서 처리된다고 보시면 됩니다.
이렇게 처리된 문자가
최종적으로 JSP에 출력이 됩니다.
다만,
JSP에서 <c:out 태그를 사용하시면
특수문자에 대한 예외처리를 수행합니다.
2개를 다 쓰게 되면
DB에서 가져온 값을도 Escape 처리가 되므로
좀더 장점이 될수 있을듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
HTMLTagFilter에서 "<" 또는 ">" 기호에 대하여
Escape 처리를 하게 됩니다.
이것은 Filter 레벨에서 처리된다고 보시면 됩니다.
이렇게 처리된 문자가
최종적으로 JSP에 출력이 됩니다.
다만,
JSP에서 <c:out 태그를 사용하시면
특수문자에 대한 예외처리를 수행합니다.
2개를 다 쓰게 되면
DB에서 가져온 값을도 Escape 처리가 되므로
좀더 장점이 될수 있을듯 합니다.
감사합니다.