secure cookie

你还记得服务器端发送 Set-Cookie: 头部的时候可以包括哪些属性么?name=value、path、domain、Expire...这就是全部么?

不知道有多少人能记得这个 secure,并且能第一时间正确说出它的用途,hoho

基本上我们所有的 web 安全都是依靠 cookie 维系的,虽然多多少少会有一些方法来保证攻击者不能随便生成一个 cookie,但对于非加密的 HTTP 来说,监听到别人的 cookie 后然后伪造身份是非常容易的事情。

即使用户通过 https 提交用户名/口令,但 cookie 一旦在 http 通道上被传递给服务器,安全隐患就随之而来了。

Set-Cookie 的 secure 属性就是处理这方面的情况用的,它表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以绝对不会被窃听到。凡是计划采用 HTTPS 来保证用户帐户安全的同志们都要注意对这个参数的使用,搞不好木桶上的最短板就在这里。

附:SOHU Passport 这个项目的 Web 技术和 cookie 关系很大,最近也着重研究了这方面的东西,下一篇 blog 仍然是和 cookie 相关的。

Topic: 技术