边缘安全加速平台

设置Cookie防护

2024-06-17 12:02:58

功能介绍

采用Cookie加密、Cookie签名等方式对Cookie字段的字进行加密或签名,防止敏感信息泄露以及防护一些使用Cookie中的弱key进行权限绕过的漏洞利用,也能在一定程度上限制基于Cookie修改的爬虫。

注意

通过浏览器本地设置的Cookie,不适用该防护方式。边缘安全加速平台-安全与加速服务防护的Cookie经过代理服务器设置修改,无法对浏览器通过js设置修改的Cookie操作。

背景信息

一些利用Cookie的攻击行为

Cookie盗用攻击

黑客等待合法用户登录系统之后,从合法用户浏览器中拿到名字为JSESSIONID的Cookie,将其放入黑客自己的浏览器的Cookie中,当黑客带着盗窃来的JSESSIONID访问系统时,后端系统会根据JSESSIONID找到对应的session,将该次请求当成是认证通过的用户发送的请求,如此黑客便可以客户的身份完成一系列敏感操作。

Cookie篡改攻击

Cookie内容明文存储时,Cookie信息存在泄露风险。例如:Cookie内明文存储用户权限,当黑客篡改权限值,且服务端未重新校验Cookie当中的用户权限是否合法时,黑客将获得一系列提权操作。

Cookie信息泄露

Cookies内容存储含有用户密码,手机号,地址等信息时,Cookie一旦泄露,黑客将获取到客户敏感身份信息。

Cookie防护工作原理

Cookie加密

Cookie加密:针对Cookie信息当中存在明文数据或可修改内容进行加密,通过反向代理服务器将Cookie值进行替换,客户端获取到的将为加密数据信息,无法进行修改。客户请求经过代理服务器时,对应Cookie值会进行解密,明文传输给源站,保证源站无切换感知。

注意:Cookie内容通过浏览器解析后需要展示在客户端时,请勿使用Cookie加密和HTTP Only选项,会导致浏览器无法识别原始Cookie内容、js服务读取Cookie值。

Cookie签名

针对Cookie进行签名,会新增一个Cookie签名字段,原始Cookie内容正常发送给用户,当客户端Cookie内容进行了修改,请求在WAF端签名校验不通过,该请求将被拦截。

前提条件

• 已经订购边缘安全加速平台-安全与加速服务,若未订购,请参见服务开通

• 在控制台新增域名,请参见添加服务域名

• 开通套餐为高级版及以上版本,支持Cookie防护相关功能。

操作步骤

登录边缘安全加速平台控制台

在左侧导航栏中选择【安全能力】,进入【Web应用防火墙】菜单,并在左侧域名列表选择您要防护的域名。

进入防护能力-高级安全防护-【Cookie防护】详细设置页。

配置说明

防护开关

控制策略生效的总开关,可以选择关闭、告警或拦截,关闭后Cookie防护将不生效。

防护条件

配置项

说明

Cookie key

设置需要防护的Cookie名称,Cookie必须有参数值,例如:set-cookie: SF_cookie_11=ENCRYPT_COOKIE1988262423afZ5ZEIzbEL%3D; Secure; SameSite=Strict, 只有SF_cookie_11SameSite可配置为key

防护方式

支持选择加密与签名两种防护方式,需要配置防护动作与防护过渡期

加密:对Cookie值进行加密,客户端查看到的值为加密后的内容

签名:给Cookie值加签名字段,签名方式可选

 

• UA:使用该方式签名,客户UA变换后,Cookie签名验证将不通过

• IP+HOST+UA:泛域名模式下,加签HOST字段

• IP+UA:使用该方式签名,客户IP或使用浏览器改变后,使用之前Cookie防护验证不通过

  • IP:使用该方式签名,客户ip变换后,Cookie签名验证将不通过

防护动作

拦截/清除

• 拦截:Cookie值检测不通过将拦截请求,并清除Cookie

  • 清除:Cookie检测不通过清除该Cookie回源,总开关为拦截,防护动作为清除,最终效果仍为清除

防护过渡期

在过渡期内(即在配置的时间之前),检测失败不会进行拦截,只会清除Cookie值,重新登录后将下发新的Cookie

Cookie属性

支持选择HTTP Only和secure

• 设置后Cookie不允许js读取,有效防止xss盗取客户Cookie,配置后,Cookie响应头部增加值Http Only,若源站响应已存在Http Only,会同时存在

  • secure:Cookie设置为secure的时候,客户端只能通过https协议发送Cookie,无法通过http发送

防护白名单

如果有特殊的业务无法通过Cookie防护策略,可以不同粒度的请求进行加白,则符合加白条件的请求不会进行Cookie防护策略。


FmRTJVkleC34