Skip to content

🛡️ WAF 防护配置与常用案例 ​

WAF 是网站防火墙,可以帮助拦截 SQL 注入、恶意脚本、危险文件上传等攻击请求。

第一次使用?先按第 1 节开启基础防护,再按第 2 节查看日志。 后面的案例按业务需求选择,不需要全部配置。

本文中的域名、IP 和网址路径都是示例,配置时请换成自己的信息。截图可点击放大,开关状态仅作位置示意。

1、第一次使用:开启基础防护 ​

找到配置页面 ​

  1. 登录 语鹿云盾控制台。
  2. 点击左侧 【站点管理 → 网站列表】,找到自己的域名。
  3. 点击这一行右侧的 【管理】。

找到自己的域名,点击右侧管理

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

WAF防火墙设置和防护状态的位置

后文提到“网站的 WAF 页面”,就是上图中的页面。

开启需要的防护 ​

  1. 在顶部 【站点 WAF 总开关】 中打开 【防护状态】。
  2. 向下找到 【内置模块防护】,将需要拦截攻击的模块设为 【防护】。例如 SQL 注入检测、XSS 检测、文件上传检测。
  3. 检查网站的登录、搜索、下单、发文章和上传等常用功能是否正常。
  4. 如果正常操作被拦截,按下一节查看日志。

只打开总开关还不够,需要使用的模块也要设为“防护”。基础防护不需要另外创建自定义规则。

模块状态有什么作用
防护检测到攻击时拦截请求
观察只记录检测结果,该模块不拦截,适合先测试策略是否对业务造成影响
禁用关闭这个模块的检测

不确定某个模块是否适合自己的网站,可以先设为 【观察】,检查正常业务和日志,再改为 【防护】。观察期间,该模块不会拦截攻击请求。

❗️ 如提示套餐没有 WAF 权限,可升级至专业版;有疑问请联系客服。

2、遇到拦截:先查看日志 ​

日志可以帮助判断:是哪次请求被拦、由哪个模块或规则拦截。

  1. 点击控制台左侧 【站点管理 → WAF数据分析】。
  2. 切换到 【日志明细】,选择自己的域名和问题发生的时间,再点 【查询】。
  3. 记录较多时,点 【高级筛选】,填写客户端 IP、请求地址等条件后重新查询。
  4. 找到对应记录,查看 【动作】 和命中的模块或规则。

WAF日志明细和高级筛选的位置

“请求地址”只填域名后面的部分。 例如网址为 https://pay.example.com/payment/notify,这里填写 /payment/notify。

看不懂日志时,把 域名、发生时间、操作步骤、日志截图 发给客服即可。 ❗️ 看到 403 不一定是 WAF 拦截,也可能来自源站服务器。

3、按问题选择案例 ​

想解决的问题查看案例
开启常见攻击防护案例一:开启通用攻击防护
有人扫描敏感文件、备份文件案例二:拦截敏感文件扫描
后台只允许自己的固定 IP 登录案例三:限制后台登录来源
限制其他地区访问后台案例四:按地区限制后台
只允许接口使用指定的请求方法案例五:限制接口请求方法
阻止下载资源被外站引用案例六:限制下载来源
开启 WAF 后无法上传文件案例七:处理上传失败
发文章、提交代码时被误拦案例八:处理内容提交误拦
支付后订单不更新、支付不回调案例九:处理支付回调失败
同一个 IP 持续攻击网站案例十:攻击自动封禁
拦截带指定工具标识的请求案例十一:按 User-Agent 拦截

需要自己添加规则或放行接口时,先看下面两种添加方法。

4、添加规则前,先看这里 ​

先分清两种用途 ​

需要做什么使用哪个入口
拦截某类访问,例如限制后台来源【防御策略管理 → WAF策略】,再应用到网站
让某个正常接口跳过 WAF 检查网站 WAF 页面的【放行规则】

“接口”可以理解为网站处理某项操作的地址,例如上传地址、文章保存地址、支付通知地址。

方法一:添加自定义拦截规则 ​

先创建策略

  1. 点击控制台左侧 【防御策略管理 → WAF策略】。
  2. 点击 【新增策略】,填写名称,例如“我的网站防护”,确认状态为启用。
  3. 在 【规则列表】 中点击 【新增规则】。

防御策略管理中的WAF策略入口

再填写规则

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

新增规则:每条条件都要点击添加,填完后点击确定

最后保存,并应用到网站

  1. 点击规则弹窗的 【确定】,再点击策略表单的 【保存】。
  2. 回到对应网站的 WAF 页面,找到 【规则库防护】,点击 【刷新】,找到刚保存的策略并应用到当前网站。
  3. 切换到 【已应用】 检查策略状态,并确认网站的 WAF 总开关已开启。

❗️ 保存策略后还要应用到网站,才会对这个网站生效。 如果找不到策略,请先检查是否保存并启用。

条件表怎么看 ​

下文表格中的名称与控制台一致:

页面名称怎么填写
匹配项选择检查什么,例如路径URI、客户端IP、请求方法
操作符选择怎么判断,例如等于、前缀匹配、不在IP列表
转换没有特别说明时选【无转换】;标注“小写”的条件选【小写】
匹配内容填写示例中的路径、IP 或表达式,并替换为自己的信息

常用字段举例:对于 https://www.example.com/api/order?id=123,Host 填 www.example.com,路径URI 填 /api/order,不带 ?id=123。

同一组中的条件要全部满足,规则才会执行。 本文案例除特别说明外,所有条件都放在“组1”,不要每条条件新建一组。

带有“正则匹配”的案例,将下方代码框中的内容复制到 【匹配内容】 即可;不要把代码框外的说明文字一起复制。

方法二:为正常接口添加放行规则 ​

  1. 进入对应网站的 【WAF防火墙设置】,向下找到 【放行规则】。
  2. 点击 【新增放行规则】,填写名称,确认状态为启用。
  3. 在“组1”中按案例填写条件,每条都点【添加】。
  4. 检查条件无误后,点击 【确定】。

新增放行规则:添加条件后点击确定

❗️ 放行后,这个请求会跳过后续所有 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防火墙设置 → 放行规则 → 新增放行规则】。

  1. 记下上传失败的时间,到 WAF 日志中找对应记录。
  2. 如果是正常文件被误拦,确认实际上传地址和请求方法;不清楚时联系网站开发人员。
  3. 需要单独放行这个上传地址时,按方法二添加条件。

例如上传网址是 https://upload.example.com/api/upload,方法是 POST:

匹配项操作符匹配内容
Host等于upload.example.com
路径URI等于/api/upload
请求方法等于POST

三条条件放在同一组,转换都选 【无转换】。保存后重新上传,检查结果。

❗️ 放行后,这个上传请求也会跳过文件上传检测,网站程序必须继续检查上传权限和文件内容。

如果只有大文件失败,或没有对应的 WAF 日志,请联系客服核对上传限制,同时检查网站服务器的大小限制和超时设置,不要直接放行所有上传请求。

案例八:处理内容提交误拦 ​

适用: 发文章、保存富文本或提交代码片段时被拦截,提交内容本身是正常业务。

配置位置: 先按第 2 节查看日志;必要时在网站 【WAF防火墙设置 → 放行规则】 添加例外。

  1. 在日志中找到失败的请求,确认命中了哪个模块或规则。
  2. 如果命中的是自己添加的规则,先调整这条规则的条件。
  3. 确认某个正常的文章保存地址需要放行时,按方法二添加条件。

例如保存地址是 https://www.example.com/admin/article/save,方法是 POST:

匹配项操作符匹配内容
Host等于www.example.com
路径URI等于/admin/article/save
请求方法等于POST

三条条件放在同一组,转换都选 【无转换】。保存后,用之前失败的正常内容重新提交。

❗️ 放行后,这个请求会跳过后续 WAF 检查。网站程序仍要检查作者权限和文章内容,不要直接放行整个后台目录。

案例九:处理支付回调失败 ​

适用: 用户已经支付,但订单没有更新;支付平台提示通知失败。

“支付回调”是支付平台通知网站“付款结果”的请求,不是用户在浏览器中打开的付款页面。

先确认失败原因 ​

  1. 在支付平台查看通知时间、回调网址和返回内容。
  2. 到 【站点管理 → WAF数据分析 → 日志明细】 查询同一时间的请求。
  3. 如果确认是 WAF 误拦,添加下面的 WAF 放行规则。
  4. 如果返回验证码、滑动验证等页面,检查下面的 CC 放行设置。
  5. 没有发现对应拦截记录时,请继续检查网站服务器和支付程序,或直接联系客服帮忙配置。

WAF 放行怎么设置 ​

进入网站 【WAF防火墙设置 → 放行规则 → 新增放行规则】,按方法二添加。

假设真实回调网址是 https://pay.example.com/payment/notify,方法是 POST:

匹配项操作符匹配内容
Host包含pay.example.com
路径URI包含/payment/notify
请求方法等于POST

三条条件放在同一组,转换都选 【无转换】。请按支付程序实际信息填写,不要直接复制示例网址。

CC 放行怎么设置 ​

  1. 进入 【网站列表 → 管理 → CC防护设置】。
  2. 在 【自定义规则】 点击 【添加规则】。
  3. 点击 【添加匹配条件】,限定真实回调路径和请求方法。CC 表单选项与 WAF 不同,请按页面填写;不清楚时联系客服。
  4. 在 【执行过滤(过滤器)】 中选择 【放行】,确认启用后点击 【提交】。

设置完成后,通过支付平台的“测试通知”或“重发通知”检查订单是否更新。浏览器能打开回调地址,不代表支付通知已经正常。

❗️ 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 或完整支付签名。

Copyright © 2025 语丞信息科技