边缘安全加速平台

设置CSRF防护

2024-06-18 01:40:36

功能介绍

CSRF一般指跨站请求伪造。跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。针对发起CSRF攻击进行防护。

注意

注意:目前控制台尚未开放CSRF防护功能,如有防护需求请通过提交工单给天翼云客服,由其人工操作开启。

背景信息

CSRF的攻击场景

攻击者盗用了用户的身份,以用户的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以受攻击者名义发送邮件、发消息,盗取账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

CSRF的攻击原理

• 用户User打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A。

• 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A。

• 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B。

• 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A。

• 浏览器在接收到这些攻击性代码后,根据网站B 的请求,在用户不知情的情况下携带Cookie 信息,向网站A 发出请求。网站A 并不知道该请求其实是由B 发起的,所以会根据用户User 的Cookie 信息以User 的权限处理该请求,导致来自网站B 的恶意代码被执行。

CSRF防护的方式

验证码

CSRF攻击的过程,往往是在用户不知情的情况下构造了网络请求,验证码则强制用户必须与应用进行交互才能完成最终请求。但基于使用体验,网站不会给所有的操作都加上验证码。

验证HTTP Referrer字段

根据 HTTP 协议,HTTP 头部中Referrer字段记录了该 HTTP 请求的来源地址。

比如一个论坛发帖的操作,在正常境况下需要先访问有发帖功能的页面,在提交发帖的表单时,Referrer值必然是发帖表单所在的页面。如果Referrer的值不是这个页面,甚至不是发帖网站的域,则极有可能是CSRF攻击。

请求中添加token并验证

在请求中放入黑客所不能伪造的信息,并且该信息不存在于Cookie 之中。可以在HTTP 请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token 或者token 内容不正确,则认为可能是CSRF 攻击而拒绝该请求。

前提条件

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

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

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

配置说明

配置项

说明

开关

开启/关闭CSRF防护策略

处理动作

请求触发CSRF防护后的处理动作,可以选择告警或拦截

可信任域名

当请求referrer中含该域名,则该请求放行(可填多个域名,默认一级本域名)默认域名可进行修改

条件

• 防护范围:设置要检测的请求范围,支持正则/字符串。支持配置多条防护粒度与防护范围,多条防护粒度为且关系,多条防护范围为或关系。URI:填写包含/不包含防护的URI;METHOD:填写包含/不包含的请求方法;PATH:填写包含/不包含的PATH

• 合法referrer:填写合法url,当请求referer精确匹配“合法referrer”,则该请求放行

• referrer:当请求没有referrer这个字段时候的处理动作;跳转,拦截,监控,放行(其中选择跳转后需要填跳转目的地址,默认当前域名首页)

• 不合法referrer时执行操作:当请求referer没有在"可信任域名"、"合法referrer"中,该请求的处理动作,拦截,监控,放行(其中选择跳转后需要填跳转目的地址,默认当前域名首页)

注意:存在多条CSRF防护配置时,按照顺序进行防护范围的匹配,采用第一条命中防护范围的策略


Bb95wC.kQ6fy