2016-07-13 3 views
0

Что я делаю неправильно? Я не могу заставить javascript-инъекцию работать. Вот то, что я положил в моей web.xml:CSRFGuard Javascript Injection не работает

<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> 

В моих файлах JSP, я добавить эту строку:

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

Но когда я представляю, маркер не добавляется к запросу , Я прошел через код, и эта линия в CsrfGuard.verifySessionToken (запрос) возвращает нуль:

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

Единственное, что я могу сделать до сих пор, чтобы добавить маркер, используя CSRF пользовательский тег и добавить скрытое поле к форме ala:

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

ответ

0

Похоже, мне нужно было выяснить, чем был первый корень контекста сервлета. Тогда я установил ее, изменив

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

в

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

Даже если вы смените/[servletcontextroot]/JavaScriptServlet»это не работает ... – Kikou

0

В моем случае, она работала хорошо, когда я добавил тег сценария после того, как базовый путь был установлен.