【问题标题】:Cookie path and its accessibility to subfolder pagesCookie 路径及其对子文件夹页面的可访问性
【发布时间】:2010-10-09 06:12:16
【问题描述】:

假设我有一个域的网站:www.example.com

如果我使用路径“/”设置 cookie,该 cookie 将可以通过域中的所有页面访问,例如:

  • www.example.com/page1.html
  • www.example.com/subfolder1/page1.html
  • www.example.com/subfolder1/moresubfolder1/page1.html 等

如果我们将 cookie 设置为路径 '/subfolder1',该 cookie 是否可用于该文件夹下的任何页面或子文件夹?例如:

  • www.example.com/subfolder1/moresubfolder/page1.html

所以,如果不是,我想,我别无选择,只能为这些 cookie 使用路径“/”,对吧?

【问题讨论】:

    标签: cookies httpcookie


    【解决方案1】:

    如果我们将 cookie 设置为路径 '/subfolder1',该 cookie 是否可用于该文件夹下的任何页面或子文件夹?

    是的。 cookie 可用于所有页面和子目录/subfolder1 路径内。

    【讨论】:

    • 相关规范见stackoverflow.com/questions/8014024/set-cookie-wildcard-path。对于那些不知道的人,cookie 只能访问指定路径和任何子路径,而不能访问超路径。因此“/folder/”无法访问路径“/folder/subfolder1/”的cookies。我在这个上撞了一会儿。
    • @SampleJACK 哎呀,这很好地解释了我的问题!
    • @Alex,那么我们如何获得一个用于/subfolder1不是 /subfolder1/inner-folder 的cookie?
    • @Pacerier 我们评论的答案是正确的,您是在问别的吗?
    • @SampleJACK 我们如何获得一个用于 /subfolder1 而不是 /subfolder1/inner-folder 的 cookie?
    【解决方案2】:

    如果我们将 cookie 设置为路径 /subfolder1,则可以访问示例中的以下页面:

    www.example.com/subfolder1/page1.html
    www.example.com/subfolder1/moresubfolder1/page1.html
    等等

    但是,页面www.example.com/page1.html 将无法访问,因为它不属于允许的路径。

    【讨论】:

      【解决方案3】:

      通过重复使用this 答案的一部分来消除一些歧义:

      如果至少有一个请求路径路径匹配给定的cookie路径 以下条件成立:

      • cookie-path 和 request-path 相同。
      • cookie-path 是 request-path 的前缀,cookie-path 的最后一个字符是 %x2F ("/")。
      • cookie-path 是 request-path 的前缀,是 request-path 中不包含在 cookie 中的第一个字符-
        path 是一个 %x2F ("/") 字符。

      /subfolder1 路径和/subfolder1/ 路径上设置cookie 之间存在细微(但可能很重要)的区别。

      如果您依赖前者,您的请求路径需要以“%x2F ("/") 字符”(正斜杠)开头,以保证所需的行为。例如,查看链接的答案。

      将 cookie 路径设置为简单的 / 可以避免任何边缘情况,但正如您所说 - cookie 可以在整个域中访问。

      【讨论】:

      • 最有启发性的答案
      • /subfolder1/subfolder1/ 有什么区别?从链接的答案,唯一的区别是:请求路径/subfolder1KKK 也匹配cookie 路径/subfolder1,对吧?不同的浏览器可能有不同的行为,例如IE匹配请求路径/subfolder1KKK到cookie路径/subfolder1,但是firefox不会,对吧?
      猜你喜欢
      • 2017-06-03
      • 2014-02-09
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 2020-01-28
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多