5

私は多くのグーグル検索を行ってきましたが、答えを見つけることができませんでした. 戦争中に web.xml ファイルに次の設定を試みましたが、影響はありません。

<session-config>
        <session-timeout>60</session-timeout>
        <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
        </cookie-config>
    </session-config>

tomcat context.xml ファイルに useHttpOnly を追加すると、Cookie を http のみに制限するように機能しますが、それでも安全にする必要があります。

4

1 に答える 1

4

何もする必要はありません。セッションを開始するリクエストが Tomcat である限りhttps、セッション Cookie は としてマークされsecureます。

また、その事実を公式に文書化したものがあるかどうかも調べましたが、見つかりませんでした。しかし、これは少なくとも Tomcat 6.0.32 以降の動作です。

org/apache/catalina/connector/Request.javaメソッドの最後で、リクエストが安全かどうかを確認し、安全である場合はsecureCookie にフラグを設定するコードを次に示します。

/**
 * Configures the given JSESSIONID cookie.
 *
 * @param cookie The JSESSIONID cookie to be configured
 */
protected void configureSessionCookie(Cookie cookie) {
    cookie.setMaxAge(-1);

    Context ctxt = getContext();

    String contextPath = null;
    if (ctxt != null && !getConnector().getEmptySessionPath()) {
        if (ctxt.getSessionCookiePath() != null) {
            contextPath = ctxt.getSessionCookiePath();
        } else {
            contextPath = ctxt.getEncodedPath();
        }
    }
    if ((contextPath != null) && (contextPath.length() > 0)) {
        cookie.setPath(contextPath);
    } else {
        cookie.setPath("/");
    }

    if (ctxt != null && ctxt.getSessionCookieDomain() != null) {
        cookie.setDomain(ctxt.getSessionCookieDomain());
    }

    if (isSecure()) {
        cookie.setSecure(true);
    }
}

更新:フィルターなどを使用して手動でこれを自分で設定しようとすることができます. 「セキュア」フラグの設定から JSESSION id Cookie までの例を確認できます

于 2012-08-02T03:50:47.103 に答える