all-in-one 크롬 접속시 RequestRejectedException
- 작성자 :
- k*j
- 작성일 :
- 2019-12-30 17:49:02
- 조회수 :
- 2,913
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
jdk : 1.8.0_191-1-ojdkbuild-b12
egov : 3.8.0 All-in-one (05.22 보안패치적용)
mariadb
프로젝트 기본 연결설정(톰캣, jdbc 설정, 테이블 생성) 후 바로 서버를 구동시켰는데 에러가 발생하였습니다.
익스플로러, 파이어폭스에서는 정상작동하고 크롬에서만 페이지 접근시 에러가 발생합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[조치방법1]
web.xml에 다음 추가
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
[조치방법2]
context-security.xml 파일에 다음을 추가
<bean id="egovStrictHttpFirewall" class="org.springframework.security.web.firewall.StrictHttpFirewall">
<property name="allowSemicolon" value="true"/>
</bean>
<security:http-firewall ref="egovStrictHttpFirewall"/>
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2번의 방법을 사용하면 해결이 되나 세미콜론을 허용하지 않고 아래 현상을 해결하고자 하는데
해결방법이 있나요?
심각: Servlet.service() for servlet [dispatcher] in context with path [/egovframework-all-in-one] threw exception
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"
at org.springframework.security.web.firewall.StrictHttpFirewall.rejectedBlacklistedUrls(StrictHttpFirewall.java:265)
at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:245)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:193)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
egov : 3.8.0 All-in-one (05.22 보안패치적용)
mariadb
프로젝트 기본 연결설정(톰캣, jdbc 설정, 테이블 생성) 후 바로 서버를 구동시켰는데 에러가 발생하였습니다.
익스플로러, 파이어폭스에서는 정상작동하고 크롬에서만 페이지 접근시 에러가 발생합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
[조치방법1]
web.xml에 다음 추가
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
[조치방법2]
context-security.xml 파일에 다음을 추가
<bean id="egovStrictHttpFirewall" class="org.springframework.security.web.firewall.StrictHttpFirewall">
<property name="allowSemicolon" value="true"/>
</bean>
<security:http-firewall ref="egovStrictHttpFirewall"/>
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
2번의 방법을 사용하면 해결이 되나 세미콜론을 허용하지 않고 아래 현상을 해결하고자 하는데
해결방법이 있나요?
심각: Servlet.service() for servlet [dispatcher] in context with path [/egovframework-all-in-one] threw exception
org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"
at org.springframework.security.web.firewall.StrictHttpFirewall.rejectedBlacklistedUrls(StrictHttpFirewall.java:265)
at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:245)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:193)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
A
안녕하세요.
표준프레임워크센터 입니다.
해당 문제는 스프링시큐리티의 보안정책 강화로
세미콜론(;)를 제한하기 때문입니다.
기재하신 2가지 방법으로 조치가 가능합니다.
[조치방법1]의 경우는 Tomcat 6.0.30 이상부터 가능합니다.
그외에 다음과 같이 EL표현식으로 조치가 가능하다고 알려져 있습니다.
<c:url value="a.gif"/>
===>
<img src='c:out value="${pageContext.request.contextPath}"/>'/a.gif"/>
감사합니다.
표준프레임워크센터 입니다.
해당 문제는 스프링시큐리티의 보안정책 강화로
세미콜론(;)를 제한하기 때문입니다.
기재하신 2가지 방법으로 조치가 가능합니다.
[조치방법1]의 경우는 Tomcat 6.0.30 이상부터 가능합니다.
그외에 다음과 같이 EL표현식으로 조치가 가능하다고 알려져 있습니다.
<c:url value="a.gif"/>
===>
<img src='c:out value="${pageContext.request.contextPath}"/>'/a.gif"/>
감사합니다.