关于Cookie八个属性的详解
一,name属性。
就是字面意思,cookie的名称。
二,Value属性。
同样是字面意思,就是cookie的值。
三,Expires属性。
Cookie的expires属性指定浏览器可发送Cookie的有效期,Expires是该Cookie被删除时的时间戳。当省略expires属性时,Cookie仅在浏览器关闭之前有效。
另外,一旦Cookie从服务器端发送至客户端,服务器端就不存在可以显式删除Cookie的方法。但可通过覆盖已过期的Cookie,实现对客户端Cookie 的实质性删除操作。
四,Size属性。
还是字面意思,就是Cookie的大小。各个浏览器多Cookie的大小和条数限制不一样,但是最大值都不会超过4KB。
五,Path属性。
Cookie的path属性可用于限制指定Cookie的发送范围的文件目录。
不过另有办法可避开这项限制,看来对其作为安全机制的效果不能抱有期待。
六,Domain属性。
通过Cookie的domain属性指定的域名可做到与结尾匹配一致。
比如,当指定http://example.com后,除http://example.com以外,Example Domain或www2.example.com等都可以发送Cookie。
因此,除了针对具体指定的多个域名发送Cookie之外,不指定domain属性显得更安全。
七,Secure属性。
Secure为Cookie的安全属性,若设置为true,则浏览器只会在HTTPS和SSL等安全协议中传输此Cookie,不会在不安全的HTTP协议中传输此Cookie。
八,HttpOnly属性。
Cookie 的HttpOnly 属性是Cookie 的扩展功能,它使JavaScript 脚本无法获得Cookie。其主要目的为防止跨站脚本攻击(Cross-sitescripting,XSS)对Cookie的信息窃取。
通常从Web页面内还可以对Cookie进行读取操作。但使用JavaScript的document.cookie就无法读取附加HttpOnly属性后的Cookie的内容了。因此,也就无法在XSS中利用JavaScript劫持Cookie了。
虽然是独立的扩展功能,但Internet Explorer 6 SP1 以上版本等当下的主流浏览器都已经支持该扩展了。另外顺带一提,该扩展并非是为了防止XSS而开发的。