Cookie是用户在浏览Web网络的过程中,由Web站点通过浏览器存储于客户端计算机的一些临时信息。Web站点可以通过Cookie记录用户的访问行为(如访问过的页面、加入购物车的商品等)或状态信息(如登录IP地址、登录状态等),并据此在后续访问过程中为用户提供个性化的服务。若网站使用Cookie记录用户登录状态,则攻击者通过盗取用户Cookie即可用它得到用户在此网站的访问权限,从而对用户信息构成威胁。
Cookie劫持的一般过程如下:攻击者输入JavaScript脚本,窃取并投递Cookie信息到自己的站点,之后以窃取到的Cookie信息假冒此用户身份到相应的服务器中获取信息。攻击者通常通过构建假冒的网页或链接,引诱用户点击这些页面或链接,并让用户提交此用户自身的Cookie信息,之后将窃取到的Cookie信息转发至攻击者指定的站点,记录并存储此用户的Cookie信息,攻击者在会话有效期内即可获得管理员的权限。
截获用户Cookie信息的主要方法包括:嗅探截获、XSS跨站截获等。嗅探截获的方式是对用户访问目标网站的通信过程进行嗅探,当用户发送其Cookie信息给目标网站时,攻击者将这些Cookie信息进行记录并保存。XSS跨站截获是在一个有跨站漏洞的页面嵌入攻击代码,当用户访问此页面时,将用户的Cookie信息采集并发送至攻击者指定的位置。
防范Cookie劫持的方法包括:①对用户访问网站的认证过程进行加密,如使用SSL加密用户发送的Cookie信息,防止Cookie信息被攻击者嗅探。②网站检查用户访问站点时的源IP地址,如果用户不在允许访问的IP地址范围内,则不管此用户的Cookie信息是否正确,都拒绝此用户的访问请求。③网站提高用户身份验证的条件,当用户的网络环境发生改变时,即使是相同的Cookie信息也要求用户重新登录验证。