みなさんを信頼してください。
私のWebアプリケーションはTomcat6.0.43で実行され、フロントでApacheまたはnginxを使用していません。
私はすでに次を使用してhttpリダイレクトからhttpsへのWebを強制しています。
<% response.sendRedirect("https://www.epi.com.my/portal/"); %>
<security-constraint> <web-resource-collection> <web-resource-name>Protected Context</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint></security-constraint>
以下にそのようなコードを追加する場所
ヘッダー追加Strict-Transport-Security "max-age = 15768000"
またはTomcatにはこの機能がありませんでしたか?または、すべてのJava Webアプリコントローラーで変更する必要があります。
フィルタを使用して追加できます。次のスニペットをweb.xmlに追加します。
<filter>
<filter-name>HSTSFilter</filter-name>
<filter-class>security.HSTSFilter</filter-class>
</filter>
次に、Webアプリでフィルターを作成します。
package security;
import Java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
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);
}
}
グローバルweb.xml(conf/web.xml)を使用してフィルターを追加することもできます。
Tomcat 7または8を使用できる場合は、 HSTSフィルターに組み込まれている をアクティブ化できます。 Tomcat/conf/web.xml
のhttpHeaderSecurity
フィルター定義のコメントを解除します
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.Apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
</filter>
便利な最大年齢パラメータを追加します。
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
フィルタマッピングのコメントを外すことを忘れないでください:
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
rl-rewrite を使用します。
WEB-INF/classes
ディレクトリに配置しますこれはHSTS固有ではないことに注意してください。url-rewriteで何でもできます。
このコードをjspのjspスクリプトレットタグの下に追加するだけです
<%
response.setHeader("Strict-Transport-Security" ,"max-age=7776000" );
%>
OR
また、JBossがアプリケーションのweb.xmlに以下のタグを追加する場合は、サーバーに追加できます。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Strict-Transport-Security" value="max-age=31536000"/>
</customHeaders>
</httpProtocol>
</system.webServer>
にとって <system.webServer>
xmlnsiを追加する必要があります。そうしないと、解析例外がスローされます。
OR