multipart 일 경우 xss
- 작성자 :
- 김*민
- 작성일 :
- 2021-03-25 11:47:39
- 조회수 :
- 6,448
- 구분 :
- 적용지원(기술지원)
- 진행상태 :
- 완료
Q
게시판 대부분이 enctype="multipart/form-data" 로 되어있는데 필터 적용이 안되어 검색해보고 적용해보아도 필터부분을 타지 않습니다..
---------------------------------------------------------------------------------------web.xml
<filter>
<filter-name>multipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
<init-param>
<param-name>multipartResolverBeanName</param-name>
<param-value>multipartResolver</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>multipartFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.HTMLTagFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>XSSFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.XSSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XSSFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
---------------------------------------------------------------------------------------bean id 설정
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>1152428800</value>
</property>
</bean>
--------------------------------------------------------------------------------------- controller
@RequestMapping(value = "/write.do", method = RequestMethod.POST)
public String write(@ModelAttribute("noticeVo") NoticeVo vo, @RequestParam Map allParams,
final MultipartHttpServletRequest multiRequest,
톰캣 설정을 allowCasualMultipartParsing="true" 로 하라는 답변도 있던데, 서버가 바뀔 예정이라 톰캣설정 변경 말고 다른 방법이 있을까요?
---------------------------------------------------------------------------------------web.xml
<filter>
<filter-name>multipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
<init-param>
<param-name>multipartResolverBeanName</param-name>
<param-value>multipartResolver</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>multipartFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>HTMLTagFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.HTMLTagFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLTagFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>XSSFilter</filter-name>
<filter-class>egovframework.com.cmm.filter.XSSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XSSFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
---------------------------------------------------------------------------------------bean id 설정
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>1152428800</value>
</property>
</bean>
--------------------------------------------------------------------------------------- controller
@RequestMapping(value = "/write.do", method = RequestMethod.POST)
public String write(@ModelAttribute("noticeVo") NoticeVo vo, @RequestParam Map allParams,
final MultipartHttpServletRequest multiRequest,
톰캣 설정을 allowCasualMultipartParsing="true" 로 하라는 답변도 있던데, 서버가 바뀔 예정이라 톰캣설정 변경 말고 다른 방법이 있을까요?
환경정보
-
- OS 정보 : Windows
- 표준프레임워크 버전 : 3.5.1
- JDK(JRE) 정보 : 1.7
- WAS 정보 : tomcat 7
- DB 정보 : cubrid
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
현재 3.5 버전의 경우 requestParameter를 Map type으로 받을 시의 구현이 따로 되어 있지 않습니다.
HTMLTagFilterRequestWrapper의 소스를 첨부해 드리니 FIlter에 넣어 사용하시면 될 것 같습니다.
표준프레임워크 v3.8이상의 경우
공통컴포넌트 All-in-one 버전을 확인해 보시면
getParameterMap()이 구현되어 있습니다.
다음 파일을 참조 하시면 됩니다.
src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java
참고로
공통컴포넌트 All-in-one버전은 다음 링크를 참조 하시면 됩니다.
다음 링크를 참조 하시면 됩니다.
https://www.egovframe.go.kr/home/sub.do?menuNo=49
감사합니다.
표준프레임워크 센터입니다.
현재 3.5 버전의 경우 requestParameter를 Map type으로 받을 시의 구현이 따로 되어 있지 않습니다.
HTMLTagFilterRequestWrapper의 소스를 첨부해 드리니 FIlter에 넣어 사용하시면 될 것 같습니다.
표준프레임워크 v3.8이상의 경우
공통컴포넌트 All-in-one 버전을 확인해 보시면
getParameterMap()이 구현되어 있습니다.
다음 파일을 참조 하시면 됩니다.
src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java
참고로
공통컴포넌트 All-in-one버전은 다음 링크를 참조 하시면 됩니다.
다음 링크를 참조 하시면 됩니다.
https://www.egovframe.go.kr/home/sub.do?menuNo=49
감사합니다.