Отсутствует заголовок HSTS в отчете checkmarx - PullRequest
0 голосов
/ 03 октября 2019

Я использую Checkmarx для анализа своего проекта, и единственным оставшимся элементом средней серьезности является Missing_HSTS_Filter, имя получателя - HSTSFilter. В моем web.xml у меня есть:

<filter>
    <filter-name>HSTSFilter</filter-name> <!-- checkmarx says problem is here -->
    <filter-class>c.h.i.c.web.security.HSTSFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>HSTSFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Класс HSTSFilter:

public class HSTSFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res,
        FilterChain chain) throws IOException, ServletException {
        HttpServletResponse resp = (HttpServletResponse) res;
        if (req.isSecure())
            resp.setHeader("Strict-Transport-Security", "max-age=31622400; includeSubDomains");
        chain.doFilter(req, resp);
    }
}

Итак, я попробовал что-то еще, и поскольку я использую Tomcat 7, я попытался добавитьвместо этого в web.xml:

<filter> <!-- checkmarx now complains here -->
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <async-supported>true</async-supported>
    <init-param>
        <param-name>hstsMaxAgeSeconds</param-name>
        <param-value>31622400</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

Checkmarx по-прежнему жалуется, говоря, что имя получателя на этот раз было StatementCollection. Я не понимаю, что это значит.

Что мне не хватает?

1 Ответ

0 голосов
/ 04 октября 2019

Странная вещь. Вы действительно используете правильную конфигурацию. По этому правилу Checkmarx я обнаружил много ложных срабатываний в каком-то сканировании. В любом случае, попробуйте добавить эти строки в ваш web.xml в конфигурации фильтра:

<init-param>
    <param-name>hstsIncludeSubDomains</param-name>
    <param-value>true</param-value>
</init-param>

<init-param>
    <param-name>hstsEnabled</param-name>
    <param-value>true</param-value>
</init-param>
...