【问题标题】:Cookie Domain contains Dot?Cookie 域包含点?
【发布时间】:2014-01-01 10:54:02
【问题描述】:

我使用 GWT 的 Cookies 类来生成 cookie。

当我使用下面的

Cookies.setCookie(LOGIN_COOKIE_NAME, value, expires);

一切正常。检查浏览器中的 cookie 会正常访问 mydomay.com。

但是,当我使用以下内容时:

String path = "/"
String domain = "mydomain.com"
Cookies.setCookie(LOGIN_COOKIE_NAME, value, expires, domain, path, secure);

当我在浏览器中查看域名时,我可以在域名前看到一个点:

.mydomain.com

点从何而来?

事实证明,如果给出 .mydomain.com,Cookies.removeCookie(LOGIN_COOKIE_NAME) 对我不起作用。为什么前面有一个点不能删除这个cookie?

【问题讨论】:

    标签: java javascript html gwt cookies


    【解决方案1】:

    点表示 cookie 也适用于 mydomain.com 的任何子域,例如 example.mydomain.com。将其视为*.mydomain.com,其中 * 是通配符。

    你可以在这里找到一个非常相似的问题:What is the cookie dot rule?

    【讨论】:

    • @confile 这可能是另一个已在此处解决的问题:stackoverflow.com/questions/8049467/remove-cookie-issue
    • 当 cookie 具有域时:.mydomain.com 我尝试了 Cookies.removeCookie("cookieName", "/") 但仍然无法删除 cookie。一定是因为域前面的点。有什么想法吗?
    • @confile 很抱歉,但我不知道这里可能是什么问题。您能否给出一个完整的代码示例来重现意外行为?
    • 如何解决我想要 String domain = "mydomain.com" 的问题?
    【解决方案2】:

    如果您在创建时传递了一个域,那么当您清除 cookie 时,您需要传递相同的域(例如 How do you remove a Cookie in a Java Servlet?);但是,这里没有 API 允许这样做。

    这听起来很像报告为RFE: Provide a Cookies.removeCookie(name, domain, path) method 的错误:

    在服务器上为给定的 URL 以及域名和路径设置 cookie 作为返回结果的一部分在 cookie 上显式设置。 Cookies.remove(name) 和 Cookies.remove(name, path) 不会删除 FF3.0.14 上的 cookie。 (基于路径的删除确实适用于 IE 6)。

    该问题中建议的解决方法是修补 GWT Cookies 类。

    【讨论】:

    • 如何解决我想要 String domain = "mydomain.com" 的问题?
    【解决方案3】:

    此处的点表示 cookie 也适用于子域,例如 abcd.mydomain.com。它非常类似于说您可以将一个完全不同的网站添加到您的域中,例如在不同的子域中分隔的注册段,因此通常可以用通配符替换它,例如 *.mydomain.com。这称为 Cookie 点规则。请参阅IETF Page 以获取相同的信息。您也可以让同一个 cookie 引用多个令牌值。

    【讨论】:

    • 如何解决我想要 String domain = "mydomain.com" 的问题?
    【解决方案4】:

    您必须将过期日期设置为现在,以便 cookie 立即过期。

    Cookies.setCookie(COOKIE_NAME, "", new Date(), domain, path, false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-13
      • 2011-12-01
      • 1970-01-01
      • 2021-01-08
      • 2018-03-29
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      相关资源
      最近更新 更多