1

こんにちは私は今のところhttponlyクッキーを使おうとしていますこれは私が書いたコードです

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    resp.setContentType("text/html");
    PrintWriter out = resp.getWriter();

    Cookie cookie = new Cookie("mycookie", "hi");
    resp.addCookie(cookie);

    cookie.setHttpOnly(true);
    boolean bol = cookie.isHttpOnly();
    out.println("<br>Cookie is Marked as HttpOnly = " + bol);
    Cookie[] cookies = req.getCookies();
    if (cookies != null) {
        for (int i = 0; i < cookies.length; i++) {

        out.println("<br/> From Cookies Array Name is: " 
            + cookies[i].getName());
        out.println("<br/> From Cookies Array Value is: "
            + cookies[i].getValue());
        out.println("<br/> From Cookies Array isHttpOnly: "
            + cookies[i].isHttpOnly());
        }
    }
    out.println("<br/> <br/>");

    cookie.setHttpOnly(false);
    boolean bol1 = cookie.isHttpOnly();
    out.println("<br>Cookie is Marked as HttpOnly = " + bol1);
    Cookie[] cookies1 = req.getCookies();
    if (cookies1 != null) {
        for (int i = 0; i < cookies1.length; i++) {
        out.println("<br/> From Cookies Array Name is: "
            + cookies[i].getName());
        out.println("<br/> From Cookies Array Value is: "
            + cookies[i].getValue());
        out.println("<br/> From Cookies Array isHttpOnly: "
            + cookies[i].isHttpOnly());
        }
    }
    out.close();
}

プリント

    Cookie is Marked as HttpOnly = true
From Cookies Array Name is: mycookie
From Cookies Array Value is: hi
From Cookies Array isHttpOnly: false


Cookie is Marked as HttpOnly = false
From Cookies Array Name is: mycookie
From Cookies Array Value is: hi
From Cookies Array isHttpOnly: false 

私はJBoss7を使用しており、web.xml構成に追加しましたが、何かが不足していると思います。

<session-config>
        <cookie-config>
            <http-only>true</http-only>
        </cookie-config>
    </session-config>
4

1 に答える 1

11

ブラウザは、httponly、secure、maxage、pathなどの値以外のCookie情報を送り返しません。ブラウザは、Cookie名に関連付けられたCookie値のみを送り返します。

Webブラウザの開発者ツールセットでHTTPトラフィックを追跡することで、自分で確認できます。Chrome / Firebug / IE9でF12キーを押し、[ネットワーク]または[ネット]タブを開いて、リクエストヘッダーとレスポンスヘッダーを確認します。Set-Cookiename = valueの追加のCookieパラメータの横には、応答ヘッダーのみが含まれ、要求ヘッダーにはname=valueのみが含まれていることがわかりCookieます。

心配しないでください。追加のCookieパラメータはブラウザに記憶されています。よくわからない場合は、同じ名前とパスで新しいCookieを作成することで、いつでもオーバーライドできます。

参照:

于 2012-04-18T21:36:07.770 に答える