Web应用集成SDK

更新时间:
复制为 MD 格式

您必须在应用中集成SDK,才能配置网页防爬场景化规则。本文介绍了如何为Web应用集成WAF防护SDK(以下简称SDK)。

组件

Web SDK集成包括Web采集器、异步接口响应组件。

Web采集器

Web采集器将客户端浏览器或容器环境下的特征纳入整体antibot攻防体系,进一步识别出多种网络层特征无法覆盖的攻击手法,提升攻防效果。

Web采集器采集到的特征经过混淆加密后,在根域名下植入cookie,并通过请求上报,对性能影响较小。

Web采集器采集的内容主要分为三部分:

  • 浏览器或容器环境信息:常见的如浏览器型号版本、屏幕分辨率、时区特性与时间戳等。

  • 特定攻防探针:主要是针对一些常见的浏览器级别Bot脚本、driver、自动化容器的探针。

  • 用户操作行为:主要指用户在页面上的鼠标、键盘、触屏事件。

    说明

    出于隐私考虑,键盘只会采集击键时间,不会采集具体按下了哪个键。

异步接口响应组件

异步接口响应组件使Web应用程序能在API接口上响应antibot攻防体系下发给客户端的挑战(目前包括JS校验和Captcha挑战)。采用此组件后,如果WAF给某一API接口下发挑战response,异步接口响应组件探测到该挑战response后,会作出响应。

异步接口响应组件为纯功能性组件,不涉及任何安全功能,不会进行任何数据采集或上报。

异步接口响应组件工作原理如下:

  1. 异步接口响应组件会全局重写页面上的xmlHttpRequest(xhr)、Fetch、Form等通用的API接口请求对象,在API接口请求对象上额外封装一层代码,不会影响原始对象的各种特性。

  2. Hook完毕后,异步接口响应组件会先于页面上的其他JS代码,判断请求的response是否为WAF返回客户端的挑战类处置手段(JS校验与captcha挑战)。

  3. 如果发现response并非WAF返回(而是源站返回),异步接口响应组件不会执行任何响应,会把response处理权限向下透传给网站本身的JS代码。如果发现responseWAF返回的,异步接口响应组件会解析返回的response中的算法内容、执行WAF要求的JS运算、并在运算之后携带JS校验验证签名重新发起请求。该重新发起的请求会被WAF验签放过,成功回源。

兼容性说明

  • 环境兼容性:兼容IE8内核以上各类浏览器与客户端容器。

  • 兼容性依赖:客户端请求可以正常携带cookie上报。容器或请求本身不支持cookie,则组件功能会被影响。

  • Hook兼容:对于一些特殊业务,异步API接口的请求本身采用的hook原生XHR、form、Fetch等对象会与异步接口响应组件产生冲突。

集成方式

阿里云提供基于JavaScriptSDK,用于增强Web浏览器场景下的防护能力,并解决潜在的兼容性问题,提供自动集成与手动集成两种方式。

  • 自动集成:一键开启集成,无需修改业务代码。

  • 手动集成:ALB、MSE、APIG、FC、SAE接入的防护对象不支持自动注入WebSDK,需要选择手动集成方式。

自动集成

Web防护列表右上角,单击WebSDK集成列表。为目标防护对象开启自动注入WebSDK。image

说明
  • 创建Web防护模板,并开启了自动集成Web SDK,将会在HTTP报文的Header中植入ssxmod_itnassxmod_itna2ssxmod_itna3Cookie用于获取客户端浏览器指纹信息。收集指纹信息包括HTTP报文host字段、浏览器高度和宽度等。

  • 启用自动集成后,系统将自动在相应防护对象的HTML页面中注入SDK,用于采集浏览器环境信息、黑产工具探针数据及操作行为日志(不含个人敏感信息)。

手动集成

Web防护列表右上角,单击WebSDK集成列表,然后单击获取SDK链接。请将获取到的<script>节点置于页面上其他所有<script>节点之前以保证最先加载。