문의드립니다.
- 작성자 :
- 김*발
- 작성일 :
- 2023-02-27 12:03:49
- 조회수 :
- 469
- 구분 :
- 적용지원(적용점검)
- 진행상태 :
- 완료
Q
안녕하세요.
프로젝트에 XSS 적용이 되어 있는데, 실제로 작동이 안 되는 것 같아 문의드립니다.
==========================================================================================
<web.xml>
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>kr.go.scup.config.CustomHTMLTagFilter</filter-class>
<init-param>
<param-name>excludedStartWithUrls</param-name>
<!-- 제외할 url들 예) /sample,/common -->
<param-value>/sample </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
==========================================================================================
<CustomHTMLTagFilter>
private List<String> excludedStartWithUrls;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String path = ((HttpServletRequest)request).getServletPath();
// HTMLTagFilterRequestWrapper 적용 분기
if (NullUtil.isNotNull(excludedStartWithUrls)
&& excludedStartWithUrls.stream().anyMatch(s -> path.startsWith(s))) {
chain.doFilter(request, response);
} else {
chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest) request), response);
}
}
@Override
public void init(FilterConfig config) throws ServletException {
String excludePattern = config.getInitParameter("excludedStartWithUrls");
excludedStartWithUrls = Arrays.asList(excludePattern.split(","));
super.init(config);
}
==========================================================================================
분기 처리는 되는데, 실제 chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest) request), response); 호출 시 적용이 안 됩니다.
확인이 가능할까요?
답변 부탁드립니다.
감사합니다.
프로젝트에 XSS 적용이 되어 있는데, 실제로 작동이 안 되는 것 같아 문의드립니다.
==========================================================================================
<web.xml>
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>kr.go.scup.config.CustomHTMLTagFilter</filter-class>
<init-param>
<param-name>excludedStartWithUrls</param-name>
<!-- 제외할 url들 예) /sample,/common -->
<param-value>/sample </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
==========================================================================================
<CustomHTMLTagFilter>
private List<String> excludedStartWithUrls;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String path = ((HttpServletRequest)request).getServletPath();
// HTMLTagFilterRequestWrapper 적용 분기
if (NullUtil.isNotNull(excludedStartWithUrls)
&& excludedStartWithUrls.stream().anyMatch(s -> path.startsWith(s))) {
chain.doFilter(request, response);
} else {
chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest) request), response);
}
}
@Override
public void init(FilterConfig config) throws ServletException {
String excludePattern = config.getInitParameter("excludedStartWithUrls");
excludedStartWithUrls = Arrays.asList(excludePattern.split(","));
super.init(config);
}
==========================================================================================
분기 처리는 되는데, 실제 chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest) request), response); 호출 시 적용이 안 됩니다.
확인이 가능할까요?
답변 부탁드립니다.
감사합니다.
환경정보
-
- OS 정보 : windows
- 표준프레임워크 버전 : 3.8.0
- JDK(JRE) 정보 : 1.8
- WAS 정보 : apache tomcat 8.5
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
표준프레임워크 v3.8이상의 경우
공통컴포넌트 All-in-one 버전의
다음 파일을 참조 하여 보시기 바랍니다.
src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java
참고로
공통컴포넌트 All-in-one 버전은 다음 링크를 참조 하시면 됩니다.
https://www.egovframe.go.kr/home/sub.do?menuNo=49
감사합니다.
표준프레임워크 센터입니다.
표준프레임워크 v3.8이상의 경우
공통컴포넌트 All-in-one 버전의
다음 파일을 참조 하여 보시기 바랍니다.
src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java
참고로
공통컴포넌트 All-in-one 버전은 다음 링크를 참조 하시면 됩니다.
https://www.egovframe.go.kr/home/sub.do?menuNo=49
감사합니다.