Appearance
🛡️ WAF 防护配置与常用案例
WAF 是网站防火墙,可以帮助拦截 SQL 注入、恶意脚本、危险文件上传等攻击请求。
第一次使用?先按第 1 节开启基础防护,再按第 2 节查看日志。 后面的案例按业务需求选择,不需要全部配置。
本文中的域名、IP 和网址路径都是示例,配置时请换成自己的信息。截图可点击放大,开关状态仅作位置示意。
1、第一次使用:开启基础防护
找到配置页面
- 登录 语鹿云盾控制台。
- 点击左侧 【站点管理 → 网站列表】,找到自己的域名。
- 点击这一行右侧的 【管理】。

- 点击网站管理页面左侧的 【WAF防火墙设置】。

后文提到“网站的 WAF 页面”,就是上图中的页面。
开启需要的防护
- 在顶部 【站点 WAF 总开关】 中打开 【防护状态】。
- 向下找到 【内置模块防护】,将需要拦截攻击的模块设为 【防护】。例如 SQL 注入检测、XSS 检测、文件上传检测。
- 检查网站的登录、搜索、下单、发文章和上传等常用功能是否正常。
- 如果正常操作被拦截,按下一节查看日志。
只打开总开关还不够,需要使用的模块也要设为“防护”。基础防护不需要另外创建自定义规则。
| 模块状态 | 有什么作用 |
|---|---|
| 防护 | 检测到攻击时拦截请求 |
| 观察 | 只记录检测结果,该模块不拦截,适合先测试策略是否对业务造成影响 |
| 禁用 | 关闭这个模块的检测 |
不确定某个模块是否适合自己的网站,可以先设为 【观察】,检查正常业务和日志,再改为 【防护】。观察期间,该模块不会拦截攻击请求。
❗️ 如提示套餐没有 WAF 权限,可升级至专业版;有疑问请联系客服。
2、遇到拦截:先查看日志
日志可以帮助判断:是哪次请求被拦、由哪个模块或规则拦截。
- 点击控制台左侧 【站点管理 → WAF数据分析】。
- 切换到 【日志明细】,选择自己的域名和问题发生的时间,再点 【查询】。
- 记录较多时,点 【高级筛选】,填写客户端 IP、请求地址等条件后重新查询。
- 找到对应记录,查看 【动作】 和命中的模块或规则。

“请求地址”只填域名后面的部分。 例如网址为 https://pay.example.com/payment/notify,这里填写 /payment/notify。
看不懂日志时,把 域名、发生时间、操作步骤、日志截图 发给客服即可。 ❗️ 看到 403 不一定是 WAF 拦截,也可能来自源站服务器。
3、按问题选择案例
| 想解决的问题 | 查看案例 |
|---|---|
| 开启常见攻击防护 | 案例一:开启通用攻击防护 |
| 有人扫描敏感文件、备份文件 | 案例二:拦截敏感文件扫描 |
| 后台只允许自己的固定 IP 登录 | 案例三:限制后台登录来源 |
| 限制其他地区访问后台 | 案例四:按地区限制后台 |
| 只允许接口使用指定的请求方法 | 案例五:限制接口请求方法 |
| 阻止下载资源被外站引用 | 案例六:限制下载来源 |
| 开启 WAF 后无法上传文件 | 案例七:处理上传失败 |
| 发文章、提交代码时被误拦 | 案例八:处理内容提交误拦 |
| 支付后订单不更新、支付不回调 | 案例九:处理支付回调失败 |
| 同一个 IP 持续攻击网站 | 案例十:攻击自动封禁 |
| 拦截带指定工具标识的请求 | 案例十一:按 User-Agent 拦截 |
需要自己添加规则或放行接口时,先看下面两种添加方法。
4、添加规则前,先看这里
先分清两种用途
| 需要做什么 | 使用哪个入口 |
|---|---|
| 拦截某类访问,例如限制后台来源 | 【防御策略管理 → WAF策略】,再应用到网站 |
| 让某个正常接口跳过 WAF 检查 | 网站 WAF 页面的【放行规则】 |
“接口”可以理解为网站处理某项操作的地址,例如上传地址、文章保存地址、支付通知地址。
方法一:添加自定义拦截规则
先创建策略
- 点击控制台左侧 【防御策略管理 → WAF策略】。
- 点击 【新增策略】,填写名称,例如“我的网站防护”,确认状态为启用。
- 在 【规则列表】 中点击 【新增规则】。

再填写规则
- 填写规则名称,确认状态为启用。
- 【执行动作】 可先选 【观察记录】,检查日志是否符合预期;需要正式拦截时,选 【防护措施】,将 【防护响应】 设为 【返回403】。
- 按案例表格填写条件。每填完一条,都点【添加】,直到所需条件全部出现在列表中。

最后保存,并应用到网站
- 点击规则弹窗的 【确定】,再点击策略表单的 【保存】。
- 回到对应网站的 WAF 页面,找到 【规则库防护】,点击 【刷新】,找到刚保存的策略并应用到当前网站。
- 切换到 【已应用】 检查策略状态,并确认网站的 WAF 总开关已开启。
❗️ 保存策略后还要应用到网站,才会对这个网站生效。 如果找不到策略,请先检查是否保存并启用。
条件表怎么看
下文表格中的名称与控制台一致:
| 页面名称 | 怎么填写 |
|---|---|
| 匹配项 | 选择检查什么,例如路径URI、客户端IP、请求方法 |
| 操作符 | 选择怎么判断,例如等于、前缀匹配、不在IP列表 |
| 转换 | 没有特别说明时选【无转换】;标注“小写”的条件选【小写】 |
| 匹配内容 | 填写示例中的路径、IP 或表达式,并替换为自己的信息 |
常用字段举例:对于 https://www.example.com/api/order?id=123,Host 填 www.example.com,路径URI 填 /api/order,不带 ?id=123。
同一组中的条件要全部满足,规则才会执行。 本文案例除特别说明外,所有条件都放在“组1”,不要每条条件新建一组。
带有“正则匹配”的案例,将下方代码框中的内容复制到 【匹配内容】 即可;不要把代码框外的说明文字一起复制。
方法二:为正常接口添加放行规则
- 进入对应网站的 【WAF防火墙设置】,向下找到 【放行规则】。
- 点击 【新增放行规则】,填写名称,确认状态为启用。
- 在“组1”中按案例填写条件,每条都点【添加】。
- 检查条件无误后,点击 【确定】。

❗️ 放行后,这个请求会跳过后续所有 WAF 检查。 请只放行确实需要的域名、具体地址和请求方法,网站程序仍要检查登录权限和提交内容。
WAF 放行与 CC 放行分别配置。支付回调等情况请看案例九。
案例一:开启通用攻击防护
适用: 希望拦截 SQL 注入、恶意脚本、危险文件上传等常见攻击。
配置位置: 【站点管理 → 网站列表 → 管理 → WAF防火墙设置 → 内置模块防护】。
按第 1 节打开总开关,将需要的模块设为 【防护】,再检查登录、搜索、下单、发文章、上传是否正常。
如果担心误拦,可先将相关模块设为 【观察】,检查日志无异常后再改为 【防护】。
案例二:拦截敏感文件扫描
适用: 日志中经常出现 /.env、/.git/config、/backup.sql 等配置文件、备份等敏感文件的访问。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
规则名称填写“拦截敏感文件扫描”,设置以下条件:
| 匹配项 | 操作符 | 转换 | 匹配内容 |
|---|---|---|---|
| 路径URI | 正则匹配 | 小写 | 复制下方表达式 |
regex
^/(\.env([./]|$)|\.git(/|$)|\.svn(/|$)|config\.php\.(bak|old)$|(backup|database)\.(zip|sql|tar|tar\.gz)$)该规则检查网站根目录下列出的文件。例如 /.env、/.git/config、/backup.sql 会匹配,普通文章地址不会因为包含“backup”一词就被拦截。
先选 【观察记录】 检查日志,确认无误后改为 【防护措施 → 返回403】,保存并应用到网站。
❗️ 自己的网站服务器也应禁止访问这些敏感文件,备份文件不要放在能通过网址直接下载的位置。
案例三:限制后台登录来源
适用: 只允许自己的固定公网 IP 访问登录页,其他访客仍可正常浏览网站。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
以 WordPress 登录页 /wp-login.php 为例,假设允许的公网 IP 是 203.0.113.10,添加“限制后台登录来源”规则:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| 路径URI | 等于 | /wp-login.php |
| 客户端IP | 不在IP列表 | 203.0.113.10 |
两条条件放在同一组,转换都选 【无转换】。意思是:访问这个登录页,并且来源 IP 不在允许列表中,才执行拦截。
多个允许的 IP 写在同一个 【匹配内容】 中,每行一个:
text
203.0.113.10
198.51.100.20先用 【观察记录】 检查;确认后改为 【防护措施 → 返回403】,保存并应用。用允许的网络和手机流量分别访问登录页,检查是否符合预期。
❗️ 示例 IP 需要替换为自己的公网出口 IP,不要填电脑上的 192.168.x.x 内网地址。如果自己 IP 经常变化,则不建议开启此功能。
案例四:按地区限制后台
适用: 后台只供指定地区使用,希望限制其他地区的访问。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
假设后台地址是 /admin 及其下级页面,只允许国家/地区码为 CN 的来源,添加“后台地区限制”规则:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| 路径URI | 正则匹配 | 复制下方表达式 |
| 国家/地区码 | 不等于 | CN |
regex
^/admin(/|$)两条条件放在同一组,转换都选 【无转换】。这会限制不属于 CN 的来源访问 /admin、/admin/ 及下级页面,不影响其他前台路径。
先选 【观察记录】 检查日志,再改为 【防护措施 → 返回403】,保存并应用。
❗️ 请替换为自己的后台路径。地区识别可能有偏差,使用代理或异地办公时也可能被限制。
案例五:限制接口请求方法
适用: 已经确认 /api/ 目录下的接口只使用 GET、POST、OPTIONS,希望拦截其他方法。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
添加“接口请求方法限制”规则:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| 路径URI | 包含 | /api/ |
| 请求方法 | 正则不匹配 | 复制下方表达式 |
regex
^(GET|POST|OPTIONS)$两条条件放在同一组,转换都选 【无转换】。表示只针对 /api/ 下的请求,拦截不在上述列表中的方法。
先选 【观察记录】,检查正常接口调用是否受影响,再改为 【防护措施 → 返回403】,保存并应用。
❗️ 不清楚接口使用哪些方法时,请先咨询网站开发人员。部分接口需要 PUT、PATCH、DELETE 或 HEAD,直接套用可能导致功能异常。
如果需要设置跨域访问,入口为 【网站列表 → 管理 → 访问控制 → 跨域访问设置】;允许 OPTIONS 不等于已经完成跨域配置。
案例六:限制下载来源
适用: 希望减少其他网站引用 /downloads/ 下的下载资源,同时保留用户直接打开下载链接的方式。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
假设只允许 https://example.com 和 https://www.example.com 引用资源,添加“下载来源限制”规则:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| 路径URI | 前缀匹配 | /downloads/ |
| 请求头 | 正则匹配 | .+ |
| 请求头 | 正则不匹配 | 复制下方表达式 |
regex
^https://(www\.)?example\.com(:443)?(/|$)两条 【请求头】 条件都在 【请求头名称】 中填写 Referer,三条条件放在同一组,转换都选 【无转换】。
Referer 表示请求来自哪个网页。上述条件表示:访问下载目录、携带了来源信息,而且来源不是允许的网站,才拦截。
先选 【观察记录】 检查正常下载,再改为 【防护措施 → 返回403】,保存并应用。
❗️ 表达式中的 example\.com 需要换成自己的域名,域名中的点保留写法 \.。不确定怎么改可联系客服。来源信息可以缺失或伪造,付费下载仍需由网站程序验证访问权限。
案例七:处理上传失败
适用: 开启 WAF 后,图片、附件或视频无法上传。
配置位置: 先按第 2 节查看日志;放行入口为网站 【WAF防火墙设置 → 放行规则 → 新增放行规则】。
- 记下上传失败的时间,到 WAF 日志中找对应记录。
- 如果是正常文件被误拦,确认实际上传地址和请求方法;不清楚时联系网站开发人员。
- 需要单独放行这个上传地址时,按方法二添加条件。
例如上传网址是 https://upload.example.com/api/upload,方法是 POST:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| Host | 等于 | upload.example.com |
| 路径URI | 等于 | /api/upload |
| 请求方法 | 等于 | POST |
三条条件放在同一组,转换都选 【无转换】。保存后重新上传,检查结果。
❗️ 放行后,这个上传请求也会跳过文件上传检测,网站程序必须继续检查上传权限和文件内容。
如果只有大文件失败,或没有对应的 WAF 日志,请联系客服核对上传限制,同时检查网站服务器的大小限制和超时设置,不要直接放行所有上传请求。
案例八:处理内容提交误拦
适用: 发文章、保存富文本或提交代码片段时被拦截,提交内容本身是正常业务。
配置位置: 先按第 2 节查看日志;必要时在网站 【WAF防火墙设置 → 放行规则】 添加例外。
- 在日志中找到失败的请求,确认命中了哪个模块或规则。
- 如果命中的是自己添加的规则,先调整这条规则的条件。
- 确认某个正常的文章保存地址需要放行时,按方法二添加条件。
例如保存地址是 https://www.example.com/admin/article/save,方法是 POST:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| Host | 等于 | www.example.com |
| 路径URI | 等于 | /admin/article/save |
| 请求方法 | 等于 | POST |
三条条件放在同一组,转换都选 【无转换】。保存后,用之前失败的正常内容重新提交。
❗️ 放行后,这个请求会跳过后续 WAF 检查。网站程序仍要检查作者权限和文章内容,不要直接放行整个后台目录。
案例九:处理支付回调失败
适用: 用户已经支付,但订单没有更新;支付平台提示通知失败。
“支付回调”是支付平台通知网站“付款结果”的请求,不是用户在浏览器中打开的付款页面。
先确认失败原因
- 在支付平台查看通知时间、回调网址和返回内容。
- 到 【站点管理 → WAF数据分析 → 日志明细】 查询同一时间的请求。
- 如果确认是 WAF 误拦,添加下面的 WAF 放行规则。
- 如果返回验证码、滑动验证等页面,检查下面的 CC 放行设置。
- 没有发现对应拦截记录时,请继续检查网站服务器和支付程序,或直接联系客服帮忙配置。
WAF 放行怎么设置
进入网站 【WAF防火墙设置 → 放行规则 → 新增放行规则】,按方法二添加。
假设真实回调网址是 https://pay.example.com/payment/notify,方法是 POST:
| 匹配项 | 操作符 | 匹配内容 |
|---|---|---|
| Host | 包含 | pay.example.com |
| 路径URI | 包含 | /payment/notify |
| 请求方法 | 等于 | POST |
三条条件放在同一组,转换都选 【无转换】。请按支付程序实际信息填写,不要直接复制示例网址。
CC 放行怎么设置
- 进入 【网站列表 → 管理 → CC防护设置】。
- 在 【自定义规则】 点击 【添加规则】。
- 点击 【添加匹配条件】,限定真实回调路径和请求方法。CC 表单选项与 WAF 不同,请按页面填写;不清楚时联系客服。
- 在 【执行过滤(过滤器)】 中选择 【放行】,确认启用后点击 【提交】。
设置完成后,通过支付平台的“测试通知”或“重发通知”检查订单是否更新。浏览器能打开回调地址,不代表支付通知已经正常。
❗️ WAF 和 CC 的放行需要分别检查。 网站支付程序仍要核验通知真实性、金额和订单信息。
案例十:遇到攻击时自动封禁
适用: 同一个 IP 持续发送被 WAF 拦截的攻击请求,希望临时阻止这个来源继续访问。
配置位置: 【站点管理 → 网站列表 → 管理 → WAF防火墙设置 → WAF 攻击自动封禁】。
打开 【自动封禁】,检查下面三个设置。以 60 / 20 / 600 为例:
| 设置项 | 示例 | 表示什么 |
|---|---|---|
| 统计窗口(秒) | 60 | 检查 60 秒内的拦截次数 |
| 命中阈值(次) | 20 | 同一 IP 被实际拦截达到 20 次时封禁 |
| 封禁时长(秒) | 600 | 临时封禁 600 秒,即 10 分钟 |
实际生效参数以页面填写的值为准。【观察】和【观察记录】不属于实际拦截,不计入上述次数。
❗️ 多人可能共用一个公网 IP,封禁后也可能影响同一网络里的其他人。普通访问次数多的限制,请到 【CC防护设置】 配置。
案例十一:按 User-Agent 拦截
适用: 日志中发现带有明确扫描工具标识的请求,希望补充拦截。
User-Agent 是请求中携带的浏览器或工具标识。这个案例需要先确认日志里的标识,普通网站无需照抄配置。
配置位置: 【防御策略管理 → WAF策略】,按方法一新增规则。
添加“扫描工具拦截”规则,设置:
| 匹配项 | 操作符 | 转换 | 匹配内容 |
|---|---|---|---|
| 请求头 | 正则匹配 | 小写 | 复制下方表达式 |
regex
sqlmap|nikto|acunetix在 【请求头名称】 中填写 User-Agent。先选 【观察记录】,确认没有影响正常访问,再改为 【防护措施 → 返回403】,保存并应用。
❗️ 工具标识可以修改,这条规则只能拦截带有上述标识的请求。不要将 Mozilla、Chrome 等普通浏览器标识加入拦截条件。
5、常见问题
开启 WAF 后,还需要 CC 防护吗?
两者可以配合使用。WAF 主要检查请求中的攻击内容;CC 防护主要处理高频访问、验证码等访问行为。
选了“观察记录”,为什么还是访问失败?
这条规则本身不拦截,但请求仍可能被其他规则、模块、CC 防护或网站服务器拦截。请查看同一时间的日志。
已经 WAF 放行,为什么还有验证码?
验证码、滑动验证等属于 CC 防护。请检查网站的 【CC防护设置】,具体可参考支付回调案例。
出现问题,发哪些信息给客服?
提供 网站域名、发生时间、访问路径、具体操作、返回提示或日志截图 即可。不要发送密码、Cookie 或完整支付签名。
