装上这个免费 WAF 的第一个小时,它先把我拦在了门外
原创
yushao
yushao
Web安全工具库
2026年10月8日 09:15
河南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
我以为装上它,是要去看住别人的。结果第一个被它挡在门外的,是我自己。
一、事情是这样的
我在本机搭了一套长亭雷池 WAF(社区版),又自己写了一个小网站接进去,想看看它到底有没有传说中那么好用。
装完,我做的第一件事是\"贼喊捉贼\"——用脚本去刷自己网站的领券接口,看看它管不管。150 次高频请求打过去,前 150 次全部正常返回 200,我心想:就这?
然后我去访问首页:
GET / -> 468
468,一个我从来没见过的状态码。页面标题写着\"雷池\",正文是\"请求频率过高,已被管理员拦截\"。
它把我拦了。
而且接下来我发现,我用 curl 访问的每一个地址都是 468,但我随手用浏览器打开同一个网址——页面正常、菜单正常、领券按钮正常,一切如常。
那一刻我才反应过来:它认的不是\"这个 IP 是好是坏\",它认的是\"你到底是人,还是脚本\"。 同一个 IP、同一秒钟、同一个地址,脚本进不来,人进得来。真正有用的WAF,是能分得清人和脚本。
这就是我第一次被一款安全产品\"教育\"的经历。所以这篇文章我不想吹参数,就按时间顺序,把我这一小时的实验完整讲一遍。
二、先造一个\"案发现场\"
要看 WAF 有没有用,得先有个\"没有 WAF 一定会出事\"的站。
我写了一个叫「拾光咖啡 · 门店自提」的小网站:Flask + SQLite,一百八十来行,有菜单、有搜索、有领券接口、有一个门店后台。然后故意在六个地方留了口子:
| 位置 | 毛病 | 后果 |
|---|---|---|
/menu?kw= |
关键词直接拼进 SQL | 整张会员表被拖走 |
/search?q= |
用户输入未转义 | XSS 执行、可偷 Cookie |
/download?file= |
没过滤 ../ |
服务器任意文件被读 |
/admin |
完全没有登录 | 会员手机号随便看 |
/api/coupon |
领券接口零频控 | 脚本可以无限刷券 |
/api/menu |
价格接口完全敞开 | 竞品爬虫随便拉 |
先看不设防的样子。 在菜单搜索里塞一句最经典的注入:
x' UNION SELECT name,phone,coupon,level FROM members--
页面不但没报错,还特别热心地把我整张会员表连手机号一起打印了出来:
后台更干脆,/admin 连登录页都没有,打开就是实名会员和券:
搜索框里塞一段脚本,页面的标题直接被改成了 XSS-PWNED——既然标题能改,那么偷 Cookie、伪造请求同样跑得通:
再补一刀文件下载,?file=../../../../etc/passwd,系统用户文件应声而落。
到这里结论已经很清楚了:这些\"事故\"没有一件需要高手出手,它们全都是\"你的代码没写对\"的直接后果。
三、请一位门神:装上雷池
雷池(SafeLine)是长亭科技开源的 WAF,社区版免费,目前装计量70W台,GitHub Star:22.7K。雷池本身就是一组容器,几条命令拉起来,一共 7 个容器各司其职(管理、检测、转发、数据库)。装完访问 https://服务器IP:9443 进控制台。
接入一个站点只需要两件事:对外监听端口 + 源站地址。我把演示站挂在 8080,源站指向本机的 5000 端口。控制台里长这样:
接进去之后第一件事不是打攻击,而是确认生意不受影响——正常访问照旧,页面完整:
四、同一批 payload,再打一遍
这才是我最想看的部分。同样的地址、同样的参数、同样的 payload,只换了入口:
| 攻击 | 不设防(直连 5000) | 经雷池(8080) |
|---|---|---|
| UNION 注入拖会员表 | 200,全表泄露 | 403 拦截 |
| 恒真条件注入 | 200,全表泄露 | 403 拦截 |
<script> XSS |
200,脚本执行 | 403 拦截 |
<img onerror> XSS |
200,脚本执行 | 403 拦截 |
深层 ../../../../etc/passwd |
200,文件被读 | 403 拦截 |
探测 .git/config |
404 | 403 拦截 |
被拦下来的时候,浏览器里看到的是一张很干净的拦截页,还带一个事件 ID,拿去日志里能一一对上:
控制台里的\"案底\"记得很细:每一条都有攻击地址、攻击类型、源 IP、时间,并且它给这些请求分的类很准确——是\"SQL 注入\"就写 SQL 注入,读 /etc/passwd 就归类为\"信息泄露\",而不是笼统一句\"恶意请求\":
点开任意一条,能看到攻击载荷、命中的防护模块、完整请求报文,还能一键复制成 cURL 复现:
这里我想多说一句它最\"不像传统 WAF\"的地方:它不靠正则规则库。
传统 WAF 靠特征匹配,攻击者加个注释、换一次 URL 编码、改一下大小写,规则就绕过去了;规则写得严一点,正常业务又天天被误杀。雷池走的是语义分析——把请求当成代码去解析,判断\"这段输入是不是想被当成SQL来用\"。所以上面那张表里的两类 XSS、两种注入,格式完全不一样,它一样能认出来,命中模块也直接写明是哪一类检测。
五、深夜那一小时的不速之客
前面说的 468 和后面的封禁,是这次实验里最有意思的部分,因为它们对应的是两种真实世界里最常见、也最容易被忽略的攻击。
场景一:领券被\"搬空\"
刷券、刷票、抢购,本质都是\"一个 IP 在极短时间里请求了远超真人的次数\"。雷池的 CC 防护默认就给了三套很实用的模板:
三条我全开了:
- • 基础访问限制:10 秒内请求达到 100 次,60 分钟内再访问就要过人机验证;
- • 基础攻击限制:60 秒内触发攻击拦截达到 10 次,自动封禁 IP 30 分钟;
- • 基础错误限制:10 秒内触发 403/404 达到 10 次,自动封禁 IP 30 分钟。
我照着\"真人不可能有的手速\"连打了一串领券请求,控制台立刻生成封禁记录,原因写得明明白白——\"10 秒内访问了 100 次,命中基础访问限制\",动作是\"强制人机验证 60 分钟\":
一个想在三分钟内把优惠券刷光的脚本,会在第一步就被掐掉。
场景二:扫描器
防扫描其实和上面是同一套机制。 扫描器的特征就是\"大量 404 + 高频请求\"。我拿 24 个常见敏感路径(/.env、/wp-admin/、/actuator/env……)模拟了一遍目录扫描,扫完之后我这边再访问——全站 429,页面写着\"请求频率过高,已被管理员拦截\":
curl GET / -> 429
curl GET /api/menu -> 429
封禁记录里同步多了一条:\"10 秒内访问了 10 次,命中基础错误限制\",封禁 30 分钟:
顺带一提,扫描过程中有两条路径是直接被 403 的(/.git/config 和 /.svn/entries)——这就是\"分类识别\"的价值:它知道你在找源码备份,而不是等你 404 完了再统计。
场景三:比价爬虫
爬虫最麻烦的地方在于:它发出来的请求,格式上完全合法。 规则拦不到,慢速爬取还能绕开频控。
雷池的做法是在站点上加一道人机验证——真人浏览器能过,脚本过不了:
开启之后,我用命令行(也就是脚本的视角)去访问:
curl GET / -> 468
curl GET /menu -> 468
curl GET /admin -> 468
curl GET /api/menu -> 468
curl GET /api/coupon -> 468
全部挡在人机验证页外,返回 HTTP 468。注意,这不是拦截,而是\"要求你证明自己是人\"。同一个地址用真实浏览器打开,页面正常渲染、正常访问:
而控制台里留下的这条数据,是我觉得整篇文章里最有说服力的一行:
触发 25 次,通过 1 次。 那 25 次全是我刚才的脚本,那唯一通过的 1 次,是我用浏览器手动打开的。
爬虫最怕的从来不是被封,是被要求执行 JavaScript。
六、有几样我觉得值得单独说的能力
这次实验顺手点过的还有:
- • 动态防护:HTML 动态加密、JS 动态混淆、图片动态水印,页面每次访问的源码都不一样——对爬虫和\"照抄前端\"的自动化程序是很直接的一刀;
- • 请求防重放:抓包抓到的请求没法重复提交,对绕过前端校验、直接重放接口的玩法有效;
- • 自定义黑白名单:按 IP、路径、请求头精细控制,允许/拒绝都有;
- • 恶意 IP 威胁情报:社区共享的恶意 IP 库,每天更新,可以直接做成拦截策略;
- • 等候室:突发流量下把用户排队放行,是电商大促那种场景的兜底;
- • 控制台仪表盘:请求数、拦截次数、攻击 IP、4xx 拦截率一眼扫过去,就知道今天有没有人来砸门。
七、什么时候,免费版就不够用了?
上面这些能力,社区版(个人版)全部免费,我是真觉得够用。但如果你是拿它护着正经生意,有几条线迟早会撞,比如:1、你的网站需要扩展到第11个;2、想让同事帮忙盯日志的那天,但是又怕他操作出现问题;3、想让拦截页带上自家品牌,而不是显示默认那句\"访问已被拦截\"等等。。。
对照官方付费选型参考整理的真实差异:
| 你遇到的真实情况 | 个人版(免费) | 专业版(¥3600/年) |
|---|---|---|
| 站点越加越多 | 最多 10 个应用 | 无限制 |
| 流量涨了、要扩容 | 单线程,约 800 QPS,不能扩容 | 吃满机器性能,可按每 +800 QPS 加配 |
| 服务器是 ARM 架构 | 不支持 | 支持 |
| 想让同事一起管,不想共用 admin | 没有多用户管理 | 支持多用户 |
| 半夜被打了没人知道 | 不支持告警外发 | 支持攻击告警外发 |
| 要给客户/老板看报表、上大屏 | 无高级流量统计、无大屏 | 都有 |
| 出事要留档、要下载攻击日志 | 不支持日志下载 | 支持 |
| 拦截页想带自家品牌、留客服电话 | 不支持自定义拦截页 | 支持 |
| 只做国内业务,想直接挡境外 | 不支持地理拦截 | 支持 |
| 多台后端要负载均衡、多节点要同步配置 | 都不支持 | 都支持 |
一句话概括:个人版是\"一个人护一个站\",专业版是\"一个小团队护一堆站\"。 免费版让你零成本看清\"攻击长什么样\";等业务长到上面某一条线,¥3600/年 就把它补上——平均一天不到 10 块钱,换一整年 7×24 的拦截。10月8日开始,雷池提供最低7.2折活动。
📌 活动入口
- • 产品官网(社区版免费):https://waf-ce.chaitin.cn/
- • 10 月 8 日会有价格上的活动,具体优惠以活动页为准,正好有站点在跑的话可以先去看看:https://ly.cyberserval.tech/ZgFO68n
📌 雷池社区版技术交流群
扫码进群,安装踩坑、策略调优、活动信息都可以在群里问。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论