Как добавить х-тип содержимого-варианты конфигурации сервера Tomcat



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




Заголовку X-Content-Type-Options анти-MIME-Sniffing не было присвоено значение 'nosniff'



Эта проверка специфична для Internet Explorer 8 и Google Chrome. Убедитесь, что на каждой странице установлен заголовок > Content-Type и параметры X-CONTENT-TYPE, если заголовок Content-Type неизвестен




Хотя я уже нашел какое-то решение этой проблемы, я ищу для решения из конфигурации tomcat.
Можно ли внести изменения в конфигурацию tomcat для достижения этой цели?



Пожалуйста, дайте мне какую-нибудь идею.

642   4  

4 ответов:

Я думаю, что вы можете достичь этого на уровне Tomcat следующими шагами:

  • Создайте свой фильтр, упакуйте его в банку, поместите банку в $CATALINA_BASE/lib/
  • добавить определение фильтра в $CATALINA_BASE/conf/web.xml

Если вы используете Tomcat 8, это очень просто - добавьте эти два раздела в свой веб.xml:

<filter>
    <filter-name>HeaderSecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
</filter>

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

Ответ сервера теперь имеет 'nosniff' и X-Frame-Options: DENY по умолчанию

Ответ сервера

Подробнее: конфигурация фильтра Tomcat 8

Пример кода класса фильтра.

public class SampleResponseFilter implements Filter  {

  @Override
  public void destroy() { }

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException
  {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    // Protection against Type 1 Reflected XSS attacks
    res.addHeader("X-XSS-Protection", "1; mode=block");
    // Disabling browsers to perform risky mime sniffing
    res.addHeader("X-Content-Type-Options", "nosniff");
    chain.doFilter(req,res);
  }

  @Override
  public void init(FilterConfig filterConfig) throws ServletException { }
}

Дополнить ответ Эда Норисса. Если я просто использую фильтр mappen, как это

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

Чтобы настроить таргетинг на все, при загрузке медиаресурсов, таких как jpg, png и т.д., будут присутствовать некоторые ненужные заголовки (x-xss-protection и X-Frame-Options). (согласно https://sonarwhal.com линтинг-инструмент).

Чтобы избежать тезисов, я создал два фильтра и отображения, подобные этому:

<filter>
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <async-supported>true</async-supported>
</filter>

<filter>
    <filter-name>httpHeaderSecurityNoX</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
        <param-name>antiClickJackingEnabled</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xssProtectionEnabled</param-name>
        <param-value>false</param-value>
    </init-param>

    <async-supported>true</async-supported>
</filter>

...

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

<filter-mapping>
    <filter-name>httpHeaderSecurityNoX</filter-name>
    <url-pattern>*.jpg</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

<filter-mapping>
    <filter-name>httpHeaderSecurityNoX</filter-name>
    <url-pattern>*.png</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

И еще несколько отображений фильтров. httpHeaderSecurityNoX для каждого из этих расширений: png, gif, js, css, ico (может быть, это может содержаться в одном url-шаблоне?)

Инит-парам

xssProtectionEnabled

Не был указан в Tomcat web.комментарии xml, но нашел его здесь

Https://vk4u.wordpress.com/2017/03/02/how-to-enable-security-filters-in-tomcat/

Comments

    Ничего не найдено.