居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录
雷池 WAF 简介
雷池 WAF,英文名 “SafeLine”,由长亭科技出品的一款 Web 应用防火墙,可以保护 Web 服务不受黑客攻击,早年就以 ”智能语义分析技术“ 闻名于安全行业。
雷池社区版是长亭基于原有技术打造的一款开源 WAF,主打简单易用,我猜的不错的话长亭应该是想借这种产品形态来占领中小企业的安全市场。目前从官网的数据来看累计装机量已经超过了 25 万台服务器,GitHub 也有 12.4K Star,在 GitHu
b WAF 榜单上已经是全球开源排名第一的 WAF。
雷池 WAF 社区版: waf-ce.chaitin.cn/
安装测试
安装方法很简单,只需要一条命令:
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
安装完成后管理控制台开在 9443 端口,直接访问,登录后就能看到雷池 WAF 的界面。雷池的界面风格我从 1.0 开始就比较喜欢,不像很多安全产品那种浓浓的年代感。

然后就是配置需要防护的网站。我在雷池后面挂了一个 DVWA 靶场,跑了个 AWVS 扫了一遍,确实该防的都能防住。(PS:如果这都防不住的话就不用出来做 WAF 了)
SQL 注入、XSS 之类的攻击防护功能就不介绍了,这是 WAF 的基础能力,长亭的语义分析技术在这个方向上本来就很有优势。
官方还给了一个 WAF 防护效果的指标图,参考对象是 ModSecurity 和 CloudFlare,一家是全球最出名的开源 WAF,另一家是全球最大的云 WAF 厂商。从指标来看,数据虽然不是 100%,但也算漂亮。(PS:好奇为什么不拿国内的 WAF 厂商做对比)
此外,官方还温馨的提供了测试样本和测试工具,不信任这个结果的话也可以自己做测试。

防扫描、防爬虫
7.0 版本我比较感兴趣的是防 Bot 能力,功能配置比较简单,有几个选项:
用什么方式对客户端发起验证
要不要对请求做重放校验
要不要对 HTML 文件动态加密
要不要对 JS 文件动态混淆
要不要对图片自动打水印
开启验证以后,访问被 WAF 保护的网站,会先看到下面这个界面,估计雷池是在本地跑了一些验证逻辑来探测浏览器的合法性。
验证通过以后页面再刷新就没有这个蓝色页面了,看来雷池做了缓存记录(这个还挺好的,不会影响用户体验)。
官方的功能介绍写的花里胡哨,实际感受了一下,这两个功能最大的用处就是防扫描、防爬虫。
雷池的防 Bot 的主要能力是人机验证和动态防护和请求防重放:
人机验证:互联网上有来自真人用户的流量,但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量,开启雷池的人机验证功能后真人用户会被放行,恶意爬虫将会被阻断。
动态防护:在用户浏览到的网页内容不变的情况下,将网页赋予动态特性,对 HTML 和 JavaScript 代码进行动态加密,确保每次访问时这些代码都以随机且独特的形态呈现。
请求防重放:自动化工具通常会使用抓包、录制等方式记录 HTTP 请求,略加修改后对 HTTP 请求进行再次发送,从而进行 ID 遍历,越权扫描等攻击行为,雷池请求防重放功能可有效应对此类攻击。

这种防护方式对于对扫描器、爬虫这类自动化发包程序确实有起效,通过人机验证让客户端必须依赖浏览器,从而大大降低了发包的效率,再对 HTML 动态加密,让扫描器无法识别网页的真正内容,也就没法判断是否存在漏洞特征,最终通过防重放,让扫描器和爬虫记录的 Cookie 无法使用。
居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录的更多相关文章
- 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
问题是这样的,最近部署一个项目,发现每次访问首页的时候老是报如下的错误: org.springframework.web.util.NestedServletException: Handler pr ...
- 今天发现之前瑞乐做的登录和注册居然都是用的get请求,瞬间出了一身冷汗.
今天发现之前瑞乐做的登录和注册居然都是用的get请求,瞬间出了一身冷汗. 然后迅速的让晓勇改成post请求了. 不然我觉得凡是有点抓包能力的人抓到我们登录和注册这么涉及安全的东西居然用的是get请求, ...
- DevExpress各大版本支持的VS版本和支持的.net版本图
如下图所示,绿色Yes代表支持,红色No代表不支持.对于有些人觉得装了dev后,vs工具箱没有,一般都是以下两大问题:1.要么你的Dev的版本不支持你当前的VS版本,没有很正常.2.要么你的项目的.n ...
- pycharm(社区版2019.1版本)打开README.md文件卡死解决办法
现象:pycharm(社区版2019.1版本)打开README.md文件卡死 解决办法: 将插件Markdown support前的勾选√去掉,保存修改后重启pycharm即可
- ubuntu1804自带的vim和vi都是用什么版本?
之前搜索vim一些命令时,经常看到有人说ubuntu自带的vim是是vim.tiny的,功能不全. 什么需要先卸载,再重装,真的是这样吗? 我查了一下,vim的版本号 vim --version vi ...
- TS 基础及在 Vue 中的实践:TypeScript 都发布 5.0 版本啦,现在不学更待何时!
大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端.跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营. 微软于3月16日发布了 TypeScript 5.0 版本 ...
- Swift基础之UIImageView(都是2.2版本)
//设置全局变量,将下面的替换即可 //var myImgView = UIImageView(); //系统生成的viewDidLoad()方法 override func ...
- 本地和svn都删除文件导致版本不同的问题
想要删除一个项目中的文件,同是要删除svn上的文件. 自己操作 1.直接右键删除了本地项目中的一个目录的模块 2.右键删除了库中svn中的这个目录 3.同步本地和svn上的代码 4.问题出现了,本地和 ...
- Linux查看系统基本信息,版本信息(最全版)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_31278903/article/d ...
- Azure SQL 数据库最新版本现已提供预览版
Tiffany Wissner 数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...
随机推荐
- Python 开发中,使用bcrypt 或 Passlib 对系统用户密码进行哈希和验证处理
在设计一个系统的时候,肯定都有会有用户身份认证的问题,一般对用户校验的时候,都是对用户存在数据库总的密码哈希值进行判断,从而避免密码泄露和反向解密,那么在Python 开发中,我们可以引入bcrypt ...
- 一加8t救砖教程
关机 按住音量上下和电源键 重启到fastboot 取到原系统boot ./fastboot flash boot_a boot.img ./fastboot flash boot_b boot.im ...
- uniapp中,getApp()返回的实例到底是什么?为什么getApp()返回的实例无法访问vuex的$store
按uniapp官方手册中说,getApp()函数用于获取当前应用实例.当前应用,也就是说当前应用程序.因为getApp()返回的实例可以用于访问app.vue中的globaldata,因此这个当前应用 ...
- Centos7.9安装Docker和Docker compose
什么是docker环境 Docker环境是指在计算机中安装和配置了Docker引擎的运行环境.Docker是一种容器化平台,它提供了一种轻量级的虚拟化技术,能够将应用程序及其依赖项打包成一个独立的容器 ...
- 使用 nuxi info 查看 Nuxt 项目详细信息
title: 使用 nuxi info 查看 Nuxt 项目详细信息 date: 2024/9/5 updated: 2024/9/5 author: cmdragon excerpt: 摘要:文章介 ...
- Java是值传递还是引用传递,又是怎么体现的
关于Java是值传递还是引用传递,可以从代码层面来实现一下拿到结果 执行下面的代码: public static void main(String[] args) { int num = 10; St ...
- SQL Server – 基本操作 Table 和 Column
前言 日常都是用 EF Core 来管理 Database, 偶尔也用 Management Studio, 就是很少手写 Command. 虽然网上一拉就有很多, 但是每次写单侧都要到处找还是挺烦的 ...
- Flutter Engage China 开发者常见问题解答 | 上篇
再次感谢大家对 Flutter Engage China 活动 的关注和积极参与!我们在活动前后收到了很多来自开发者的反馈和问题,Flutter 团队和演讲嘉宾在直播 Q&A 环节中也针对部分 ...
- OPENLDAP部署完整版(Linux)附一键式脚本
(一)环境信息1,系统环境2,域信息(本章节使用)(二)应用部署1,ladp部署1. yum方式安装OpenLDAP服务2.拷贝数据库配置配置文件,并启动服务3.slappasswd生成OpenLDA ...
- [OI] 交互 | pipe
关于如何在本地实现交互 管道 Linux 内置了一种管道操作,可以方便地把 \(A\) 程序的输出和 \(B\) 程序的输入连接起来,只需要以下指令: A | B 此代码行的意思是:同时运行 \(A\ ...