读Cookie安全后的读后感

本文涉及的产品
.cn 域名,1个 12个月
简介:

引用 “Cookie是一个神奇的机制,同域内浏览器中发出的任何一个请求都会带上Cookie,无论请求什么资源,请求时,Cookie出现在请求头的Cookie字段中。服务端响应头的Set-Cookie字段可以添加、修改和删除Cookie,大多数情况下,客户端通过JavaScript也可以添加、修改和删除Cookie。”

 

这句话基本上说了cookie是什么 和怎样进行操作就不重复了

 

现在越来越多的黑阔用xss进行盗取用户或者管理员的cookie 盗取目标网站的用户权限

 

Cookie的重要字段如下:
[name][value][domain][path][expires][httponly][secure]

 

其含义依次是:名称、值、所属域名、所属相对根路径、过期时间、是否有HttpOnly标志、是否有Secure标志。

 

有几个字段是有专门的机制的

 

一个一个来

 

0×01子域Cookie机制

设置Domain 的值 可以进行共享cookie (不填为默认 本域 不能为其他域名)

比如 你是www.fuck.com但你 domain = bingdao.com 那是行不通的

 

在查关于 子域cookie机制时

找到2个相关的博文

http://blog.csdn.net/civilman/article/details/5286426(跨子域的Cookie的清除问题 在同一个环境下的2个网站 1.fuck.com 和 2.fuck.com 共用同一组cookie 但导致不能登出的问题的解决方法)

 

http://hi.baidu.com/thinkinginlamp/item/b1273444b6631ff4dc0f6ce6(子域和根域下的同名Cookie) 在子域下请求时,浏览器会把子域和根域下的Cookie一起发送到服务器,那如果子域和根域下有一个同名Cookie,当我们在PHP里使 用$_COOKIE访问时,到底生效的是哪个呢?

我也有点感兴趣就同这个博文实验了下

 

我直接贴图和操作了

 

我是在本机操作的 于是就用switchhosts! 更改了下环境 设定了一个虚拟域名

 

设定虚拟域名 (因为毕竟是子域和根域下的Cookie的问题 IP不好实现)

 

编写设置Cookie的PHP脚本,先设置子域,再设置根域:

再编写浏览Cookie的脚本:

然后访问1.php 生成cookie 再访问2.php获取cookie

结果显示有效的是子域下的Cookie。

___________________________________________

在子域下请求时,浏览器会把子域和根域下的Cookie一起发送到服务器,那如果子域和根域下有一个同名Cookie,当我们在PHP里使 用$_COOKIE访问时,到底生效的是哪个呢?

大家再看下我们的问题 所以我们再将先后顺序换下

答案很明显了

第一次先设置子域,再设置根域:请求头Cookie的值是bar=www;bar=2b,结果有效的是bar=www
第二次先设置根域,再设置子域:请求头Cookie的值是bar=2b;bar=www,结果有效的是bar=2b

同名时是根据设置cookie的先后顺序来也就是哪个在前哪个生效,后面的会被忽略。

0×02路径Cookie机制

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

看就看得懂.

 

 

0x03HttpOnly Cookie机制

“HttpOnly是指仅在HTTP层面上传输的Cookie,当设置了HttpOnly标志后,客户端脚本就无法读写该Cookie,这样能有效地防御XSS攻击获取Cookie。

 

<?php
setcookie(“test”, 1, time()+3600, “”, “”, 0); // 设置普通Cookie
setcookie(“test_http”, 1, time()+3600, “”, “”, 0, 1);
// 第7个参数(这里的最后一个)是HttpOnly标志,0为关闭,1为开启,默认为0
?>

但还是有突破的方法

 

(1)查看phpinfo.php

 

本地测试的

 

 

 

(2)Django应用的调试信息,没进行测试- -

(3)CVE-2012-0053关于Apache Http Server 400错误暴露HttpOnly Cookie 本地木有apache环境 没有测试…. 大家有兴趣自己测试吧..

 

0×04 Secure Cookie机制

指的是设置了Secure标志的Cookie仅在HTTPS层面上安全传输,如果请求是HTTP的,就不会带上这个Cookie,这样能降低重要的Cookie被中间人截获的风险。

Secure Cookie对于客户端脚本来说是可读写的。



    本文转自Tar0 51CTO博客,原文链接http://blog.51cto.com/tar0cissp/1259406:,如需转载请自行联系原作者



相关文章
|
5月前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
6月前
|
存储 JSON 安全
解密Web安全:Session、Cookie和Token的不解之谜
解密Web安全:Session、Cookie和Token的不解之谜
478 0
|
存储 安全 前端开发
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
这篇文章讨论了认证和授权的概念,并探讨了设计权限认证框架的原则。它还比较了Cookie和Session的区别,并探讨了处理分布式部署时的Session保存问题。此外,文章还介绍了CSRF攻击及其防范方法,以及OAuth2.0、JWT令牌和SSO的概念。最后,文章提出了设计开放授权平台时需要考虑的因素。
204 0
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
|
安全 JavaScript 前端开发
Yii2如何保证Cookie安全?底层原理是什么?
Yii2如何保证Cookie安全?底层原理是什么?
146 0
|
Web App开发 存储 安全
HTTP那些事儿—cookie安全相关
HTTP那些事儿—cookie安全相关