2016-07-13 5 views
0

무엇이 잘못 되었나요? 나는 자바 스크립트 주입을 작동시킬 수 없다. 여기에 내가 내 web.xml 파일에 넣어 것입니다 : 내 JSP 파일에서CSRFGuard 자바 스크립트가 작동하지 않습니다.

<listener> 
    <listener-class>org.owasp.csrfguard.CsrfGuardServletContextListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.owasp.csrfguard.CsrfGuardHttpSessionListener</listener-class> 
</listener> 
    <context-param> 
     <param-name>Owasp.CsrfGuard.Config</param-name> 
     <param-value>WEB-INF/csrfguard.properties</param-value> 
    </context-param> 
    <context-param> 
     <param-name>Owasp.CsrfGuard.Config.Print</param-name> 
     <param-value>true</param-value> 
    </context-param> 
    <filter> 
     <filter-name>CSRFGuard</filter-name> 
     <filter-class>org.owasp.csrfguard.CsrfGuardFilter</filter-class> 
    </filter> 
<filter-mapping> 
    <filter-name>CSRFGuard</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<servlet> 
    <servlet-name>JavaScriptServlet</servlet-name> 
    <servlet-class>org.owasp.csrfguard.servlet.JavaScriptServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>JavaScriptServlet</servlet-name> 
    <url-pattern>/JavaScriptServlet</url-pattern> 
</servlet-mapping> 

,이 줄을 추가 :

<script src="/JavaScriptServlet"></script> 

을하지만 제출할 때, 토큰 요청에 추가되지 않습니다 . 나는 코드를 강화하고, CsrfGuard.verifySessionToken (요청)이 라인은 null을 반환 : 내가 지금까지 할 수

String tokenFromRequest = request.getParameter(getTokenName()); 

있는 유일한 방법은 CSRF 사용자 정의 태그를 사용하여 숨겨진 필드를 추가하여 토큰을 추가하는 것입니다 ala :

<input type="hidden" name="<csrf:tokenname/>" value="<csrf:tokenvalue/>"/> 

답변

0

내 서블릿 컨텍스트 루트가 처음 무엇인지 파악해야하는 것처럼 보입니다. 그럼 난 기본 경로가 설정된 후 나는 스크립트 태그를 추가 할 때이 괜찮 았는데, 내 경우에는

<script src="/[servletcontextroot]/JavaScriptServlet"></script> 
+0

심지어 "작동하지 않습니다 ... – Kikou

0

<script src="/JavaScriptServlet"></script> 

을 변경하여 해결했습니다. 당신이/[servletcontextroot]/JavaScriptServlet 변경할 때

관련 문제