更新时间:2026-09-21 GMT+08:00
分享

开启Cookie安全属性

Cookie安全属性功能,是针对Web业务Cookie安全的加固能力,核心作用是自动为源站返回的Cookie追加HttpOnly和Secure属性(均设为true),防范XSS(跨站脚本攻击)窃取Cookie、Cookie劫持、中间人篡改Cookie等安全风险,同时满足安全合规要求,避免因Cookie中未插入HttpOnly Secure等安全配置字段,而被Appscan、AWVS、绿盟等Web安全扫描器记录为安全威胁。

当“对外协议”配置为HTTPS时,WAF支持开启“Cookie安全属性”,开启后会将Cookie的HttpOnly和Secure属性设置为true。

原理介绍

WAF Cookie安全属性功能工作在7层响应流改写层,不改变源站业务逻辑、不生成Cookie,仅对源站返回给客户端的Set-Cookie响应头进行自动安全增强,属于“被动加固”,不影响请求转发效率。

具体生效流程如图1所示。

图1 Cookie安全属性生效流程
详细说明如下:
  1. 客户端发起HTTPS请求。
  2. WAF接收请求,并完成攻击检测、合规校验。
  3. WAF将检测后的正常业务请求转发至源站。
  4. 源站处理请求。
  5. 源站返回包含Set-Cookie响应头的响应数据(Cookie由后端Web Server通过框架配置或Set-Cookie指令插入)。
  6. WAF拦截源站响应,解析Set-Cookie响应头,检查“Cookie”是否已包含“HttpOnly”、“Secure”属性。
    • 若Cookie已包含对应属性,WAF不做任何修改,直接转发响应。
    • 若未包含,WAF自动追加属性(不改变Cookie值、有效期等核心信息)。
  7. WAF将增强后的响应数据转发至客户端,客户端浏览器识别并应用HttpOnly、Secure属性。

系统影响

开启“Cookie安全属性”后,WAF会自动将Cookie的HttpOnly和Secure属性设置为true。开启前建议在测试环境充分验证,确认对登录、会话保持、前端JS读取Cookie等关键业务无影响后再在生产环境启用。

该操作会对业务产生以下影响,请根据实际业务情况评估后再决定是否开启:
  • 对前端JavaScript的影响
    • HttpOnly设置为true后,浏览器将禁止通过JavaScript(如document.cookie)读取该Cookie。如果您的业务前端依赖JS读取Cookie内容(例如用于埋点、前端路由、页面个性化展示等),相关功能将失效。
    • 建议:确认业务中是否存在依赖JS读取Cookie的逻辑,如有,需改为通过后端接口获取所需信息,或将该Cookie排除在安全属性加固范围之外。
  • 对HTTP访问的影响
    • Secure设置为true后,该Cookie仅会在HTTPS请求中携带。如果业务存在HTTP访问场景(如HTTP与HTTPS混用、后端回源为HTTP等),可能导致Cookie无法正常下发或携带,进而引发登录态丢失、会话异常等问题。
    • 建议:确保业务全链路使用HTTPS,或在开启前确认无HTTP访问依赖。
  • 对第三方组件/老版本浏览器的影响
    • 部分老旧浏览器或第三方SDK可能不支持HttpOnly/Secure属性,开启后可能出现兼容性问题。
    • 建议:在测试环境验证后再在现网环境开启。
  • 对安全扫描结果的影响

    开启后,Appscan、AWVS、绿盟等扫描器对Cookie缺失Secure/HttpOnly的告警将消除,有助于满足等保、PCI-DSS等合规要求。

典型应用场景

  • 所有采用HTTPS协议的Web业务,例如电商网站、管理后台、支付系统、用户登录类站点。
  • 需通过安全扫描、等保测评、PCI DSS认证的业务。
  • 存在登录态、用户敏感信息存储在Cookie中的业务。

约束条件

功能

约束说明

接入方式限制

  • 云模式-CNAME接入/独享模式接入:支持该功能。
  • 云模式-ELB接入:不支持。Cookie写入在响应报文内,ELB接入下,WAF不能改写源站返回的原始响应包,无法追加Cookie安全标识。

其他

“对外协议”包含“HTTP”时,“Cookie安全属性”默认为关闭状态,不支持开启。

前提条件

已添加防护网站且部署模式为“独享模式”或“云模式-CNAME接入”。

开启Cookie安全属性

  1. 登录Web应用防火墙控制台。
  2. 在控制台左上角,单击图标,选择区域或项目。
  3. (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
  4. 在左侧导航栏,选择“资产管理 > 防护对象”。
  5. 在“防护对象”页面,单击目标防护域名。
  6. 在“高级配置”区域,单击“Cookie安全属性”列的,开启Cookie安全属性

    图2 开启Cookie安全属性

    完成以上配置后,在浏览器中访问防护域名后,打开开发者工具,查看Cookie的httponly和secure属性是否为true。

相关文档