前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cookie 安全扫描问题修复

Cookie 安全扫描问题修复

原创
作者头像
软件书桌
发布2024-04-08 14:57:17
6670
发布2024-04-08 14:57:17

背景

AppScan 是一款商用安全扫描软件,“跨站点请求伪造” 和 “加密会话(SSL)Cookie 中缺少 Secure 属性” 是扫描出来的两个较为常见的问题。

注意:需要使用 HCL AppScan Standard 这个版本,如果使用 IBM Security AppScan Standard 可能会存在扫描误报,测试下来是有这个现象,具体原因未知。

Cookie

Cookie 就是一些数据,用于存储服务器返回给客户端的信息,客户端进行保存。

在下一次访问该网站时,客户端会将保存的 Cookie 一同发给服务器,服务器再利用 Cookie 进行一些操作。

利用 Cookie 我们就可以实现自动登陆,保存浏览历史,身份验证等功能。

Cookie 安全属性

  1. HttpOnly
    1. 在 Cookie 中设置 HttpOnly 属性之后,通过 JS 等程序脚本在浏览器中将无法读取到 Cookie 信息。
    2. 防止程序拿到 Cookie 之后进行攻击。
  2. Secure
    1. 设置该属性之后,就是只能通过 HTTPS 协议进行访问。
    2. 使用 HTTPS 协议可以防止数据在传递过程中被监听捕获后信息泄露。
  3. SameSite
    1. Chrome 浏览器在 51 版本之后,为 Cookie 新增的属性,用来防止 CSRF 攻击和用户追踪。
    2. 可以设置三个值:Strict、Lax、None。
    3. Strict
      1. 完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。
      2. 只有当前网页 URL 和请求目标一致时,才会带上 Cookie。
    4. Lax
      1. 规则稍微放宽,导航到目标网址的 Get 请求除外。
    5. None
      1. Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。
      2. 不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
      3. Set-Cookie: key=value; SameSite=None; Secure

了解了 Cookie 的这些背景知识就知道如何找对应的修复方法了。

如果使用的是 Nginx 作为 Web 容器,则只需要在 nginx.conf 中加上如下配置就可以修复了。

代码语言:lua
复制
location /api/ {
        proxy_cookie_path / "/; httponly; secure; SameSite=Strict";        
}

服务端 /login 接口会设置一个 Cookie 到 Response 中,就是图中 Set-Cookie 属性。

proxy_cookie_path / "/; Secure; SameSite=Strict"; 会在 Response Set-Cookie 属性中补充 Secure 和 SameSite 数据。

这样一来,浏览器在发送请求时,会向 Cookie 设置 Secure 和 SameSite 属性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
    • Cookie
      • Cookie 安全属性
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档