关于Cookie八个属性的详解

发布时间 2023-11-06 15:58:24作者: 圆柱模板
Cookie是我们平时用的最多地一个客户端和服务端交互的对象,本文主要是分享和记录一下关于Cookie对象的一些常用属性的具体意思。

 

一,name属性。

就是字面意思,cookie的名称。

 

 

二,Value属性。

同样是字面意思,就是cookie的值。

 

 

三,Expires属性。

Cookie的expires属性指定浏览器可发送Cookie的有效期,Expires是该Cookie被删除时的时间戳。当省略expires属性时,Cookie仅在浏览器关闭之前有效。

另外,一旦Cookie从服务器端发送至客户端,服务器端就不存在可以显式删除Cookie的方法。但可通过覆盖已过期的Cookie,实现对客户端Cookie 的实质性删除操作。

 

 

四,Size属性。

还是字面意思,就是Cookie的大小。各个浏览器多Cookie的大小和条数限制不一样,但是最大值都不会超过4KB。

 

各个浏览器对Cookie的最大值和最大数目有不同的限制.png

 

 

五,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而开发的。

醉学网-探索知识,成就未来! (nongpin88.com)