CookIe安全

cookie一个神奇的机制,无论什么请求中都会带有cookie字段。

可以通过服务器响应头的Set-Cookie字段添加,修改和删除,大多数情况下,客户端通过JavaScript也可以添加,修改和删除cookie

cookie重要字段

[name][value][domain][path][expires][httponly][secure]
对应着 名称,值,所属域名,所属相对根路径,过期时间,是否有HttpOnly标志,是否有Secure标志

子域Cookie机制

通过domain字段机制设置cookie,如果不指定domain的值,默认是本地。例:

document.cookie="test=1";

路径Cookie机制

path字段机制,设置cookie时,如果不指定path的值,默认就是目标页面的路径。例:

www.xxxx.com/admin/index.php页面通过JavaScript来设置一个Cookie
document.cookie="test=1";

path的值就是/admin/。通过指定path字段,JavaScript有权限设置任意cookie到任意路径下,但是只有目标路径下的页面JavaScript才能读取到该cookie。

跨路径获取:

xc=function(src){
    var o =document.createElement("iframe");//iframe进入同域的目标页面
    o.src =src;
    document.getElementsByTagName("body")[0].appendChild(0);
    o.onload=function(){
//iframe加载完成后
       d=o.contenDocument || o.contentWindow.document;
//获取document对象
       alert(d.cookie);//获取cookie
    };      
}('http://www.xxxx.com/admin/index.php');

通过path不能防止重要的cookie被盗取。