有奖捉虫:行业应用 & 管理与支持文档专题 HOT
Web 防护模块提供多种处置方式。不同功能模块支持使用的处置方式有所不同,请参考具体功能模块文档。
处置方式
用途
处置方式描述
后续动作
拦截
用于阻断请求访问站点(包括缓存或非缓存内容)。
响应拦截页面和拦截状态码。
不再匹配其他策略
放行
用于跳过当前安全模块其余规则。
当前模块中,其余规则不再匹配该请求。
继续匹配其他生效的规则
观察
用于评估或灰度安全策略。
仅记录日志,不进行处置。
继续匹配其他规则
重定向
用于提供备用资源,改进被拦截时的用户访问体验。
重定向至指定 URL。
不再匹配其他策略
返回自定义页面
用于提供体验更好的拦截页面。
用于兼容 API 格式,响应 API 可以解析的错误信息。
用于业务监控,通过指定状态码监控被拦截的请求。
返回自定义错误页面和状态码。支持引用 自定义错误页面 功能中定义的页面内容。
不再匹配其他策略
IP 封禁
用于惩罚恶意客户端。
当有请求命中匹配条件时,丢弃一段时间内来自该客户端 IP 的请求。
不再匹配其他策略
用于识别不支持 JavaScript 的工具客户端,常见于 DDoS 攻击源。
响应重定向(HTTP 302)页面,页面携带 JavaScript 代码验证客户端浏览器行为,仅通过校验的访客可以继续访问。
通过挑战的请求继续匹配其他规则
用于 Bot 对抗, 首先进行 JavaScript 挑战校验,对通过校验的请求再进行 CAPTCHA 人机校验。
首先进行 JavaScript 挑战;对通过校验的客户端,响应重定向(HTTP 302)页面,携带验证码校验,用户通过交互操作完成校验。两次校验都通过的访客才可以继续访问。
通过挑战的请求继续匹配其他规则

JavaScript 挑战

JavaScript 挑战校验过程为浏览器无感验证,不会展示验证页面,无需人工介入,浏览器可以自动完成校验并展示请求资源。该方式可有效过滤分布式脚本发起的 DDoS 攻击。

JavaScript 挑战适用场景

JavaScript 挑战主要适用于防护以下资源:
用于浏览器访问的页面;
浏览器访问页面后,才会访问的资源。
注意:
JavaScript 挑战不适用于非浏览器用户访问场景,包括:移动端 App 访问的 API 接口、无需通过页面调用的 API 接口等。此类场景中,客户端可能因无法正常处理 JavaScript 响应内容,无法通过校验,导致被拦截。对于此类业务,请使用「响应自定义内容」或「拦截」处置方式,或配置防护例外规则,已确保业务正常运行。

JavaScript 挑战的交互流程


当安全防护策略使用 JavaScript 挑战来处理请求时,将响应一个重定向页面(HTTP 302)并在页面内容中包含一个 JavaScript 程序,用于校验浏览器的运行环境。启用 JavaScript 的浏览器收到该响应后,将执行该校验程序,并执行 HTTP 302 跳转。当收到跳转请求后,EdgeOne 的安全防护模块将放行携带合法标识(客户端 IP 和 User-Agent)的请求。

托管挑战

托管挑战集成了 JavaScript 挑战和 CAPTCHA(人机校验),通过二次验证,校验浏览器环境和人类用户。该方式可有效过滤非浏览器客户端访问。

托管挑战的交互流程


当安全防护策略使用 JavaScript 挑战来处理请求时,将先执行 JavaScript 挑战机制,响应一个重定向页面(HTTP 302)并在页面内容中包含一个 JavaScript 程序,用于校验浏览器的运行环境。启用 JavaScript 的浏览器收到该响应后,继续响应一个重定向(HTTP 302)并在页面中嵌入一个交互式 CAPTCHA 验证程序,程序在客户端完成校验后执行 HTTP 302 跳转。当收到跳转请求后,EdgeOne 的安全防护模块将放行携带合法标识(客户端 IP 和 User-Agent)的请求。