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 主要防护能力
-
防自动化攻击
- 撞库攻击
- 暴力破解
- 批量注册
- 批量发帖/回复
- 自动按键软件
-
指纹防护
- 基于大数据指纹库识别来访者
- 自动拦截黑名单访客
-
传统 WAF 功能
- SQL 注入防护
- 文件包含防护
- 目录遍历防护
-
其他防护
- CSRF 攻击防护
- Iframe 框架嵌套防护
- 爬虫防护
- XSS 攻击防护
三、技术优势与不足
3.1 优势
-
部署简便
- 1 行代码引用
- 10 行代码完成部署
-
维护成本低
- 几乎无需维护工作
-
性能影响小
- 运行于网页中,几乎无性能影响
- 与传统反向代理 WAF 相比无性能损失
-
兼容性好
- 不影响原有业务功能
3.2 不足
-
报表功能不完善
- 防护效果报表不够详尽(开发中)
-
防护覆盖有限
- 无法防护某些攻击类型,如:
- 重放攻击
- 嗅探攻击
- 无法防护某些攻击类型,如:
四、适用场景
- 作为传统 WAF 的补充防护层
- 中小型企业网站
- 个人网站
- 含 H5 功能页、游戏、小程序等 Web 应用
- 防护强度要求不特别高的场景
五、部署与配置
5.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的网站共同贡献和受益于指纹数据
- 工作流程:
- 采集访问者浏览器指纹
- 与黑名单指纹库比对
- 匹配则拦截访问
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应用安全性的有效工具。