2017-10-22 20 views
0

에 CsrfPreventionFilter 설정,하지만, 난 여전히 내 문제를 해결할 수 없습니다.나는이 주제에 StackOverflow에있는 모든 질문과 답변을 읽고 생각 나는 톰캣 8</p> <p>에 붙박이 CsrfPreventionFilter을 설정하려고 시도하고 톰캣

나는 (이 response.encodeUrl()를 겪은 후) home.jsp의 URL이이 비표가 작동하지 때문에, 제대로 렌더링 www.example.com/home.jsp?org.apache.catalina.filters.CSRF_NONCE=5E4BD8FEE1B4CC1DA79D874905015911

입니다,하지만 난 home.jsp을 설정하기 때문에 home.jspreports.jsp

이 EntryPoint가 될 수 있습니다. 그러나 CSRFPreventionFilter가 정상적으로 실행되어 nonce를 성공적으로 생성하고 있음을 증명하는 것 같습니다. 내가 CTRL + N을 누른 다음 www.example.com/reports.jsp을 입력 한 후 나는 같은 넌스를 추가하는 경우

는, 즉 www.example.com/reports.jsp?org.apache.catalina.filters.CSRF_NONCE=5E4BD8FEE1B4CC1DA79D874905015911는 내가 페이지 403 reports.jsp가 EntryPoint를로 설정되지 얻을 수 있지만, 그것은 성공적으로 렌더링 기대 그것은 nonce와 함께 제공되었습니다.

내가 뭘 잘못하고 있니?

(제 질문은 Getting 403 error when using CSRF filter with tomcat 6.0.32과 다소 유사하지만 CSRFPrevention 필터가 설정되는 방식에 대한 대답이 아닌 것 같지만 내부적으로 응답/요청을 처리하는 방식에 다소 문제가있을 수 있습니다. Not able to authenticate post request for CSRF token with tomcat에서 쿠마의 대답)

UPDATE 여기

을 @Pankaj하는 것은

<filter> 
    <filter-name>CSRFPreventionFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class> 
     <init-param> 
      <param-name>entryPoints</param-name> 
      <param-value>/images/404.JPG,/login.jsp,/home.jsp,/images/im_login.gif,/js/events.js,/js/menu.js,/js/amount_validation.js,/js/calendar.js,/js/toolbar.js,/js/tablesort.js,/js/scripts.js,/css/style.css</param-value> 
     </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>CSRFPreventionFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

'CsrfPreventionFilter'에 대해'필터 매핑 '이란 무엇입니까? – awd

+0

내 질문을 web.xml 구성 – gordon613

+0

으로 업데이트했습니다. 특히 response.encodeUrl()에 대한 호출은 몇 개의 링크가 home.jsp에 있습니다. – awd

답변

1

당신은 다시해야하는 web.xml의 구성을이다 js, css 및 이미지 경로를 entryPoints에서 이동하고 CsrfPreventionFilter에 대한 필터 매핑을 포함하지 않는 방식으로 이동하십시오.

왜냐하면 tomcat에서 nonceCache의 크기는 기본적으로 5입니다. js, css가 요청 될 경우, tomcat은 5 가지 요청 (home.jsp에 대해 생성 됨)이 nonceCache에서 플러시되고 no (아니오)로 플러시 된 후 5 회의 요청 이후에 캐시에 nonce를 생성하고 캐시에 추가합니다 더 긴 유효 기간. 따라서 해당 nonce와 함께 합법적 인 요청을 보내면 403이됩니다.