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请求头中传递给服务器,因此还会受到服务器请求头长度的影响。