私のクライアントは、私のWebアプリのWebアプリの脆弱性を修正することを望んでいます。以下は、私のWebアプリの脆弱性に関するメッセージです。
Anti-MIME-SniffingヘッダーX-Content-Type-Optionsが「nosniff」に設定されていませんでした
このチェックは、Internet Explorer8とGoogleChromeに固有のものです。 Content-Typeヘッダーが不明な場合は、各ページで> Content-TypeヘッダーとX-CONTENT-TYPE-OPTIONSが設定されていることを確認してください
私はすでにこの問題の解決策を見つけましたが、Tomcat構成から解決策を探しています。これを実現するためにTomcat構成を変更することは可能ですか?
何か考えを教えてください。
次の手順でTomcatレベルで達成できると思います。
$CATALINA_BASE/lib/
に入れます。$CATALINA_BASE/conf/web.xml
に追加しますTomcat 8を使用している場合、それは本当に簡単です-次の2つのセクションをweb.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 { }
}
エド・ノリスの答えを補足するため。このようなフィルターマペンを使用するだけなら
<filter-mapping>
<filter-name>HeaderSecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
すべてをターゲットにするために、jpg、pngなどのメディアリソースをロードするときにいくつかの不要なヘッダー(x-xss-protectionおよびX-Frame-Options)があります( https://sonarwhal.com)によると リンティングツール)。
これらを回避するために、次のような2つのフィルターとマッピングを作成しました。
<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パターンに含めることができますか?)
Init-param
xssProtectionEnabled
tomcat web.xmlコメントにはリストされていませんが、ここで見つかりました
https://vk4u.wordpress.com/2017/03/02/how-to-enable-security-filters-in-Tomcat/