BrowserWAF:免费、开源的前端WAF
字数 1810 2025-08-15 21:31:11

BrowserWAF 教学文档

一、BrowserWAF 概述

BrowserWAF 是一款由 ShareWAF 推出的免费、开源的前端 Web 应用防火墙(WAF),运行于浏览器端,是一种轻量化的 WAF 解决方案。

1.1 什么是前端 WAF

前端 WAF 与传统 WAF 的主要区别在于:

  • 运行位置:浏览器端而非服务器端
  • 部署方式:通过 JavaScript 代码嵌入网页
  • 防护机制:客户端实时检测和拦截

1.2 发展历史

BrowserWAF 前身是 ShareWAF 的前端 WAF 模块,于 2020 年 6 月作为独立产品发布。

二、核心防护功能

2.1 主要防护能力

  1. 防自动化攻击

    • 撞库攻击
    • 暴力破解
    • 批量注册
    • 批量发帖/回复
    • 自动按键软件
  2. 指纹防护

    • 基于大数据指纹库识别来访者
    • 自动拦截黑名单访客
  3. 传统 WAF 功能

    • SQL 注入防护
    • 文件包含防护
    • 目录遍历防护
  4. 其他防护

    • CSRF 攻击防护
    • Iframe 框架嵌套防护
    • 爬虫防护
    • XSS 攻击防护

三、技术优势与不足

3.1 优势

  1. 部署简便

    • 1 行代码引用
    • 10 行代码完成部署
  2. 维护成本低

    • 几乎无需维护工作
  3. 性能影响小

    • 运行于网页中,几乎无性能影响
    • 与传统反向代理 WAF 相比无性能损失
  4. 兼容性好

    • 不影响原有业务功能

3.2 不足

  1. 报表功能不完善

    • 防护效果报表不够详尽(开发中)
  2. 防护覆盖有限

    • 无法防护某些攻击类型,如:
      • 重放攻击
      • 嗅探攻击

四、适用场景

  1. 作为传统 WAF 的补充防护层
  2. 中小型企业网站
  3. 个人网站
  4. 含 H5 功能页、游戏、小程序等 Web 应用
  5. 防护强度要求不特别高的场景

五、部署与配置

5.1 基本部署步骤

  1. 在 HTML 文件的 </body> 标签前添加以下代码:
<!-- 引用JQuery库 -->
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<!-- 引用BrowserWAF库 -->
<script src="http://www.sharewaf.com/browserwaf/BrowserWAF.js"></script>

<script>
// 配置参数,1为启用,0为不启用
var config = {
    Defend_Automated_Attack_Enable: 1,  // 防自动化攻击
    BrowserID_Enable: 1,               // 浏览器指纹识别防护
    Defend_Sql_Inject_Enable: 1,       // 防SQL注入等
    Defend_CRSF_Enable: 1,             // 防CSRF攻击
    Defend_Iframe_Enable: 0,           // 防Iframe嵌套
    Defend_Spider_Enable: 1,           // 防爬虫、按键模拟
    Defend_XSS_Enable: 0               // 防XSS攻击
}

// 启动BrowserWAF
BrowserWAF_Run(config);
</script>

5.2 配置参数详解

参数名称 类型 说明
Defend_Automated_Attack_Enable 整数(0/1) 启用/禁用防自动化攻击功能
BrowserID_Enable 整数(0/1) 启用/禁用浏览器指纹识别防护
Defend_Sql_Inject_Enable 整数(0/1) 启用/禁用SQL注入等传统WAF功能
Defend_CRSF_Enable 整数(0/1) 启用/禁用CSRF攻击防护
Defend_Iframe_Enable 整数(0/1) 启用/禁用Iframe嵌套防护
Defend_Spider_Enable 整数(0/1) 启用/禁用爬虫和按键模拟防护
Defend_XSS_Enable 整数(0/1) 启用/禁用XSS攻击防护

六、防护机制详解

6.1 防SQL注入

  • 检测位置:URL 和输入框内容
  • 拦截方式:实时检测并阻止包含SQL注入语句的请求

6.2 浏览器指纹识别

  • 技术原理:匹配预先建立的恶意指纹库
  • 数据共享:所有接入BrowserWAF的网站共同贡献和受益于指纹数据
  • 工作流程:
    1. 采集访问者浏览器指纹
    2. 与黑名单指纹库比对
    3. 匹配则拦截访问

6.3 防自动化攻击技术

  1. 元素隐藏技术

    • 密码输入框初始状态无id和name属性
    • 防止通过元素属性定位的攻击
  2. 随机干扰元素

    • 插入隐藏的input框
    • 防止xpath方式定位的攻击

6.4 防爬虫技术

  • 链接元素初始href为空
  • 点击时动态还原真实href
  • 防止通过页面抓取链接的爬虫

七、注意事项

  1. 引用顺序:必须先引用jQuery,再引用BrowserWAF
  2. 部署位置:必须放在所有页面内容之后,</body>标签之前
  3. 资源加载:可将JS文件下载到本地使用
  4. 协议支持:支持http和https方式引用
  5. 版本兼容:可使用其他版本的jQuery库

八、技术原理补充

BrowserWAF 采用"One for all, All for one"的共享理念:

  • 所有接入网站既是恶意指纹的采集者
  • 同时也是防护数据的受益者
  • 形成良性循环的安全生态

九、总结

BrowserWAF 作为轻量级前端安全解决方案,特别适合作为传统WAF的补充防护层,为中小型网站提供基本的安全防护能力,具有部署简单、维护方便、性能影响小等显著优势,是提升Web应用安全性的有效工具。

BrowserWAF 教学文档 一、BrowserWAF 概述 BrowserWAF 是一款由 ShareWAF 推出的免费、开源的前端 Web 应用防火墙(WAF),运行于浏览器端,是一种轻量化的 WAF 解决方案。 1.1 什么是前端 WAF 前端 WAF 与传统 WAF 的主要区别在于: 运行位置:浏览器端而非服务器端 部署方式:通过 JavaScript 代码嵌入网页 防护机制:客户端实时检测和拦截 1.2 发展历史 BrowserWAF 前身是 ShareWAF 的前端 WAF 模块,于 2020 年 6 月作为独立产品发布。 二、核心防护功能 2.1 主要防护能力 防自动化攻击 撞库攻击 暴力破解 批量注册 批量发帖/回复 自动按键软件 指纹防护 基于大数据指纹库识别来访者 自动拦截黑名单访客 传统 WAF 功能 SQL 注入防护 文件包含防护 目录遍历防护 其他防护 CSRF 攻击防护 Iframe 框架嵌套防护 爬虫防护 XSS 攻击防护 三、技术优势与不足 3.1 优势 部署简便 1 行代码引用 10 行代码完成部署 维护成本低 几乎无需维护工作 性能影响小 运行于网页中,几乎无性能影响 与传统反向代理 WAF 相比无性能损失 兼容性好 不影响原有业务功能 3.2 不足 报表功能不完善 防护效果报表不够详尽(开发中) 防护覆盖有限 无法防护某些攻击类型,如: 重放攻击 嗅探攻击 四、适用场景 作为传统 WAF 的补充防护层 中小型企业网站 个人网站 含 H5 功能页、游戏、小程序等 Web 应用 防护强度要求不特别高的场景 五、部署与配置 5.1 基本部署步骤 在 HTML 文件的 </body> 标签前添加以下代码: 5.2 配置参数详解 | 参数名称 | 类型 | 说明 | |---------|------|------| | Defend_ Automated_ Attack_ Enable | 整数(0/1) | 启用/禁用防自动化攻击功能 | | BrowserID_ Enable | 整数(0/1) | 启用/禁用浏览器指纹识别防护 | | Defend_ Sql_ Inject_ Enable | 整数(0/1) | 启用/禁用SQL注入等传统WAF功能 | | Defend_ CRSF_ Enable | 整数(0/1) | 启用/禁用CSRF攻击防护 | | Defend_ Iframe_ Enable | 整数(0/1) | 启用/禁用Iframe嵌套防护 | | Defend_ Spider_ Enable | 整数(0/1) | 启用/禁用爬虫和按键模拟防护 | | Defend_ XSS_ Enable | 整数(0/1) | 启用/禁用XSS攻击防护 | 六、防护机制详解 6.1 防SQL注入 检测位置:URL 和输入框内容 拦截方式:实时检测并阻止包含SQL注入语句的请求 6.2 浏览器指纹识别 技术原理:匹配预先建立的恶意指纹库 数据共享:所有接入BrowserWAF的网站共同贡献和受益于指纹数据 工作流程: 采集访问者浏览器指纹 与黑名单指纹库比对 匹配则拦截访问 6.3 防自动化攻击技术 元素隐藏技术 密码输入框初始状态无id和name属性 防止通过元素属性定位的攻击 随机干扰元素 插入隐藏的input框 防止xpath方式定位的攻击 6.4 防爬虫技术 链接元素初始href为空 点击时动态还原真实href 防止通过页面抓取链接的爬虫 七、注意事项 引用顺序:必须先引用jQuery,再引用BrowserWAF 部署位置:必须放在所有页面内容之后, </body> 标签之前 资源加载:可将JS文件下载到本地使用 协议支持:支持http和https方式引用 版本兼容:可使用其他版本的jQuery库 八、技术原理补充 BrowserWAF 采用"One for all, All for one"的共享理念: 所有接入网站既是恶意指纹的采集者 同时也是防护数据的受益者 形成良性循环的安全生态 九、总结 BrowserWAF 作为轻量级前端安全解决方案,特别适合作为传统WAF的补充防护层,为中小型网站提供基本的安全防护能力,具有部署简单、维护方便、性能影响小等显著优势,是提升Web应用安全性的有效工具。