2016-07-13 11 views
0

私は間違っていますか?私はjavascript注射を働かせることができません。ここで私は私のweb.xmlに入れたものです:私のjspファイルでCSRFGuard Javascript注入が機能しません

<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に変更しても

関連する問題