2015-12-10 3 views
0

Я пытаюсь реализовать HDIV с помощью приложения, использующего struts 1.3.8. Я добавил зависимости в файл pom и прослушиватель, фильтр в файле web.xml.HDIV: не перенаправлять на страницу с ошибкой, когда HDIV_PARAMETER_NOT_EXISTS

Токен _HDIV_STATE_ вводится на каждую страницу, ссылка .. Итак, чтобы проверить, работает ли она как ожидалось от атак CSRF, я сделал небольшую html-страницу вне приложения, которая отправляет данные в приложение для изменения некоторых данных в чтобы имитировать атаку CSRF.

Тест неудачен, потому что целевые данные были изменены. Когда я проверяю журналы, кажется, что HDIV обнаруживает, что запрос не содержит _HDIV_STATE_, но он не отменяет его и не перенаправляет на страницу ошибок или что-то еще.

Я ошибаюсь в своей конфигурации или просто не понял, что делает HDIV, когда токен не существует в запросе?

Спасибо за вашу помощь

pom.xml:

<dependency> 
      <groupId>org.hdiv</groupId> 
      <artifactId>hdiv-config</artifactId> 
      <version>2.1.12</version> 
</dependency> 
<dependency> 
      <groupId>org.hdiv</groupId> 
      <artifactId>hdiv-struts-1</artifactId> 
      <version>2.1.12</version> 
</dependency> 
<dependency> 
      <groupId>org.hdiv</groupId> 
      <artifactId>hdiv-jstl-taglibs-1.2</artifactId> 
      <version>2.1.12</version> 
</dependency> 

web.xml

<listener> 
    <listener-class>org.hdiv.listener.InitListener</listener-class> 
</listener> 
<filter> 
    <filter-name>ValidatorFilter</filter-name> 
    <filter-class>org.hdiv.filter.ValidatorFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>ValidatorFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<jsp-config> 
<taglib> 
    <taglib-uri>/WEB-INF/tld/struts-html-el.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tld/hdiv-html-el.tld</taglib-location> 
</taglib> 

<taglib> 
    <taglib-uri>/WEB-INF/tld/struts-logic-el.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tld/hdiv-logic-el.tld</taglib-location> 
</taglib> 

<taglib> 
    <taglib-uri>/WEB-INF/tld/c.tld</taglib-uri> 
    <taglib-location>/WEB-INF/tld/hdiv-c.tld</taglib-location> 
</taglib> 
</jsp-config> 

hdiv-config.hml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:hdiv="http://www.hdiv.org/schema/hdiv" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
          http://www.hdiv.org/schema/hdiv 
          http://www.hdiv.org/schema/hdiv/hdiv.xsd"> 

    <hdiv:config excludedExtensions="css,png,gif,jpeg,jpg,js" errorPage="/error.jsp" 
       maxPagesPerSession="2" debugMode="true"> 
     <hdiv:sessionExpired loginPage="/index.jsp" homePage="/"/> 
     <hdiv:startPages>/index.jsp</hdiv:startPages> 
    </hdiv:config> 

</beans> 

ответ

4

Вы DebugMode активированные в hdiv-config.xml:

От HDIV Reference Documentation:

HDIV предлагает режим выполнения отладки для применения HDIV в производственной среде без каких-либо функциональных или проблем интеграции. Другими словами, процесс HDIV обрабатывает и проверяет все запросы, но не изменяет первоначальное выполнение запроса, просто регистрируя возможную атаку, но не останавливая ее.

Попробуйте отключить debugMode.

Фернандо Лозано (команда HDIV)

+0

Большое спасибо. Я этого не заметил. – kkung

+0

безупречный благодаря мужчине. – Amare

Смежные вопросы