17 - 04 - 03 图解HTTP(38)


Set-Cookie  字段的属性:



(接上图)

expires属性 

Cookie的expires属性 指定浏览器可发送Cookie的有效期。当省略expires属性时,

其有效期仅限于维持浏览器会话(Session)时间段内。这通常限于浏览器应用程序被关闭之前。

另外,一旦 Cookie从服务器端发送至客户端,服务器端就不存在可以显式删除Cookie的方法。

但可通过覆盖已过期的Cookie,实现对客户端Cookie的实质性删除操作。


path属性:

Cookie的 path属性可用于限制指定 Cookie的发送范围的文件目录。不过另有办法可避开这项限制,

看来对其作为安全机制的效果不能抱有期待。


domain属性:

通过 Cookie的domain属性指定的域名可做到与结尾匹配一致。

比如,当指定 example.com后,除example.com以外,www.example.com/www2.example.com等都可以发送 Cookie 。

因此,除了针对具体指定的多个域名发送 Cookie之外,不指定domain属性显得更安全。


secure属性 :

 Cookie的secure属性用于限制Web页面仅在 HTTPS安全连接时,才可以发送Cookie 。发送 Cookie时,

指定 secure属性的方法如下所示。

ex :  Set-Cookie: name=value; secure

以上例子仅当在 https://www.example.com/ (HTTPS)安全连接的情况下才会进行 Cookie  的回收。

也就是说,即使域名相同, http://www.example.com/ (HTTP)也不会发生 Cookie回收行为。

当省略secure属性时,不论HTTP还是HTTPS都会对Cookie  进行回收。


HttpOnly属性:

Cookie的HttpOnly属性是Cookie的扩展功能,它使JavaScript脚本无法获得Cookie。

其主要目的为防止跨站脚本攻击(Cross-site scripting,XSS)对Cookie的信息窃取。

发送指定 HttpOnly属性的Cookie的方法如下所示。

ex: Set-Cookie: name=value; HttpOnly


通过上述设置,通常从Web页面内还可以对Cookie进行读取操作。

但使用 JavaScript  的 document.cookie就无法读取附加 HttpOnly属性后的Cookie的内容了。

因此,也就无法在 XSS  中利用 JavaScript劫持Cookie了。虽然是独立的扩展功能,

但 Internet Explorer 6 SP1以上版本等当下的主流浏览器都已经支持该扩展了。

另外顺带一提,该扩展并非是为了防止 XSS  而开发的。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值