Cookie路径及其对子文件夹页面的可访问性


75

假设我有一个域名为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使用路径“ /”,对吗?

Answers:


76

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

是。该Cookie提供给所有网页和子目录/subfolder1路径。


35
有关相关规范,请参见stackoverflow.com/questions/8014024/set-cookie-wildcard-path。对于那些不知道的人,Cookie仅可访问指定的路径和任何子路径,而没有超级路径。因此,“ / folder /”无法访问路径“ / folder / subfolder1 /”的cookie。我把头撞了一下。
Anson Kao

@SampleJACK哎呀,这很好地解释了我的问题!
RonLugge

@Alex,那么我们如何获得一个cookie,/subfolder1不是 /subfolder1/inner-folder
Pacerier

@Pacerier我们正在评论的答案是正确的,您还有其他问题吗?
Anson Kao

@SampleJACK我们如何获取用于/ subfolder1但不用于/ subfolder1 / inner-folder的cookie?
Pacerier 2013年

13

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

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

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


12

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

如果至少满足以下条件之一,则请求路径与给定的cookie路径匹配:

  • Cookie路径和请求路径相同。
  • cookie路径是请求路径的前缀,并且cookie路径的最后一个字符是%x2F(“ /”)。
  • cookie路径是请求路径的前缀,并且cookie
    路径中未包括的请求路径的第一个字符是%x2F(“ /”)字符。

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

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

将cookie路径设置为仅/避免出现任何极端情况,但是正如您所说的那样-cookie可以在整个域中访问。


1
最有
启发意义的

/subfolder1和之间有什么区别/subfolder1/?从链接的答案来看,唯一的区别是:请求路径/subfolder1KKK也匹配cookie路径/subfolder1,对吗?并且不同的浏览器可能具有不同的行为,例如IE将请求路径匹配/subfolder1KKK到cookie路径/subfolder1,但是firefox不会,对吗?
弗兰克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.