开启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所示。
- 客户端发起HTTPS请求。
- WAF接收请求,并完成攻击检测、合规校验。
- WAF将检测后的正常业务请求转发至源站。
- 源站处理请求。
- 源站返回包含Set-Cookie响应头的响应数据(Cookie由后端Web Server通过框架配置或Set-Cookie指令插入)。
- WAF拦截源站响应,解析Set-Cookie响应头,检查“Cookie”是否已包含“HttpOnly”、“Secure”属性。
- 若Cookie已包含对应属性,WAF不做任何修改,直接转发响应。
- 若未包含,WAF自动追加属性(不改变Cookie值、有效期等核心信息)。
- 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中的业务。
约束条件
| 功能 | 约束说明 |
|---|---|
| 接入方式限制 |
|
| 其他 | “对外协议”包含“HTTP”时,“Cookie安全属性”默认为关闭状态,不支持开启。 |
前提条件
已添加防护网站且部署模式为“独享模式”或“云模式-CNAME接入”。
开启Cookie安全属性
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,选择。
- 在“防护对象”页面,单击目标防护域名。
- 在“高级配置”区域,单击“Cookie安全属性”列的
,开启Cookie安全属性 图2 开启Cookie安全属性
完成以上配置后,在浏览器中访问防护域名后,打开开发者工具,查看Cookie的httponly和secure属性是否为true。
