# 开启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]所示。
图1Cookie安全属性生效流程   
![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002535717706.png "点击放大")
详细说明如下：
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安全属性"默认为关闭状态，不支持开启。                                                                                                                                                                                                    |
   
#### 前提条件
已[添加防护网站](https://support.huaweicloud.com/usermanual-waf/waf_01_1108.html)且部署模式为"独享模式"或"云模式-CNAME接入"。
#### 开启Cookie安全属性
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"资产管理 \> 防护对象"。
5. 在"防护对象"页面，单击目标防护域名。
6. 在"高级配置"区域，单击"Cookie安全属性"列的![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001815250530.png)，开启Cookie安全属性
   
   图2开启Cookie安全属性   
   ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000001861970853.png "点击放大")
   完成以上配置后，在浏览器中访问防护域名后，打开开发者工具，查看Cookie的httponly和secure属性是否为true。
   
   
 
