cookie中path路径探讨

cookie中path路径探讨,第1张

上篇文章 中说:cookie必须在 同一网站 下且 cookie的path路径为当前url或者是当前url的父级 时才是共享的。

具体怎么理解呢?看下面解释

首页介绍下php中设置cookie的函数setcookie()

需要注意的且常用的有俩点

做几个测试就知道了,主要测试以下几点

设置一个cookie变量a,以我们上面的预测,客户端的path应为 /

看到path为 /, 也就是说在整个域名内任何path的cookie都应该能访问该cookie变量a

设置一个cookie变量b,以我们上面的预测,该cookie变量b的path应为/api/test,而且应该包含path为/api/test,/api和/的cookie变量,也就是包含我们上面设置的cookie变量a

发现path确实/api/test,证明我么的第一个观点,而发现能共享cookie变量a,也证明了我们的第二个观点。

要设置cookie的保存路径,可以设置path值,如设置路径为根目录:

$.cookie("example", "foo",{path:"/"})

如果要设置路径为/admin,则:

$.cookie("example", "foo",{path:"/admin"})

cookie的几个属性:

expire:cookie的生存期,默认是暂时存储

path:cookie的关联网页,默认是当前目录的网页或者当前目录下的字子目录

domain:设置共享cookie的域名(同一主域名下)切将path设为PATH='/'

secure属性:在https协议下生效,才会传递到服务器端,http协议不会传递。

HttpOnly属性:无法通过脚本程序(js)读取到cookie信息,有效防止XSS攻击。

安全性:出于安全方面的考虑,只有与创建 cookie 的页面处于同一个目录或在创建cookie页面的子目录下的网页才可以访问

同域情况:让这个设置的cookie 能被其他目录或者父级的目录访问的方法:

document.cookie = "userName = 独行冰海path=/"

相同主域不同二级域名的跨域情况:

document.cookie = "username=独行冰海path=/domain=baidu.com"

chrome限制js设置cookie,IE可在本地JS设置cookie

A站点通过script src标签的跨站请求B站点如果请求数据是img 则不会带cookie等数据

如果请求数据是一个get请求地址,则cookie会随请求发出(此时cookie是B站点cookie)

根据这个特性我们可以构造CSRF攻击

实验截图

Cookie限制:

(1)cookie个数限制

IE :原先为20个,后来升级为50个

Firefox: 50个

Opera:30个

Chrome:180个

Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

(2) 浏览器所允许的每个Cookie的最大长度(localstorage为5M)

Firefox和Safari:4079字节

Opera:4096字节

IE:4095字节

(3) 服务器中Http请求头长度的限制。Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/10959381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存