sefinek/Cloudflare-WAF-Expressions
GitHub: sefinek/Cloudflare-WAF-Expressions
一个基于 Cloudflare WAF 表达式自动更新的安全规则集合,用于提升网站抗扫描与防护能力。
Stars: 183 | Forks: 22
☁️ Cloudflare Web 应用防火墙规则
## 🛡️ 此列表可以阻止什么?
| 部分 (1-5) | 描述 | 操作 |
|----------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|:------------------|
| [主防火墙 (I)](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#part1) | 阻止数据泄露、可疑引荐来源、恶意及异常 URL 路径,以及空或异常的用户代理。 | 阻止 |
| [主防火墙 (II)](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#part2) | 阻止可疑请求、漏洞利用、路径遍历、配置文件访问尝试,以及在 URL 中使用 CLI 工具。 | 阻止 |
| [已弃用的浏览器等](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#part3) | 对过时的浏览器、操作系统和可疑用户代理强制执行额外验证。 | 管理挑战 |
| [阻止不必要的机器人](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#part4) | 阻止不必要的、有害的机器人、扫描器和网络爬虫。 | 阻止 |
| [阻止机器人、ASN 和 IP](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#part5) | 阻止来自 Tor 网络、已知恶意 IP 地址以及与僵尸网络或攻击相关的自治系统 (ASN) 的流量。 | 阻止 |
## ✅ 使用方法
### 自动方式(强烈推荐)
您可以使用本仓库中的 JavaScript 代码全天自动更新规则。
无需手动添加,脚本会为您处理一切(;
#### 要求
1. [Node.js LTS + npm](https://nodejs.org)
2. [PM2](https://www.npmjs.com/package/pm2)(`npm i pm2 -g`)
3. [Git](https://git-scm.com/downloads)
4. Linux(同样适用于 Windows Server)
#### 教程(Linux)
1. 克隆本仓库:
git clone https://github.com/sefinek/Cloudflare-WAF-Expressions.git cf-expressions
2. 安装必要依赖:
cd cf-expressions && npm install
3. 复制 `.env.default` 文件并重命名为 `.env`:
cp .env.default .env
4. 打开 `.env` 文件并配置以下变量:
- 将 `NODE_ENV` 设置为 `production`
- 在 `CF_API_TOKEN` 处粘贴您的 Cloudflare 令牌
- 如果您的网站使用 PHP,请将 `PHP_SUPPORT` 设置为 `true`([这将排除 .php 相关的阻止规则](https://github.com/sefinek/Cloudflare-WAF-Expressions/blob/main/markdown/expressions.md#%EF%B8%8F-firewall-rules-for-cloudflare-waf))
nano .env

5. 使用 PM2 24/7 运行脚本:
pm2 start && pm2 save
6. 配置 PM2 开机自启动:
eval "$(pm2 startup | grep sudo)"
### 手动方式
1. 登录您的 [Cloudflare](https://dash.cloudflare.com) 账户。
2. 选择要添加表达式的域名。
3. 点击「安全」标签,然后从下拉菜单中选择「WAF」。
4. 在「自定义规则」标签中,点击「创建规则」按钮。
5. 从 [markdown/expressions.md](markdown/expressions.md) 文件中复制表达式。
6. 点击「编辑表达式」并粘贴复制的表达式。
7. 点击「部署」以保存更改。对表达式的其余部分重复此过程,确保根据文件中指定的操作(阻止或管理挑战)选择适当的操作。
8. 完成!表达式现已生效,并将开始阻止对源服务器的非必要流量。请确保网站功能正常,并定期访问本仓库以获取最新更新。
## 🔥 DDoS 防护(额外安全措施)
Cloudflare 提供了许多需要根据您的偏好手动配置的设置。
在本教程中,我们仅启用能够保护服务器免受 DDoS 攻击的设置。
请记住,还有更多措施可用于缓解 DDoS 攻击。
### 1:创建 DDoS L7 规则集
#### 安全 > DDoS > 部署 DDoS 覆盖
1. **覆盖名称:** DDoS L7 规则集
2. **规则集操作:** 阻止
3. **规则集敏感度:** 默认
### 2:速率限制
#### 安全 > 速率限制规则 > 创建规则
1. **规则名称:** 默认速率限制
2. 表达式:`(starts_with(http.request.uri.path, "/"))`
- **字段:** URI 路径
- **运算符:** 以…开头
- **值:** /
3. 当速率超过…
- **请求数:** 200(您应根据网站流量自行调整此值)
- **周期:** 10 秒
4. 然后执行操作…
- **选择操作:** 阻止
5. 持续时间…
- **持续时间:** 10 秒
### 3:注意事项
1. 确保服务器 IP 地址未泄露。
2. 您的服务器应仅接受来自 Cloudflare 的请求;绕过 Cloudflare 直接访问网站应不可行。
3. 在服务器上配置速率限制,以在 DDoS 攻击期间降低负载。
## 🤝 拉取请求
如果您有任何建议或改进,请随时打开 [拉取请求](https://github.com/sefinek/Cloudflare-WAF-Expressions/pulls)。
您的贡献将受到赞赏,并有助于保持此列表的最新和有效性,以应对最新威胁。感谢您!
## 🔖 GNU GPL v3 许可证
版权 © 2023-2026 [Sefinek](https://sefinek.net)标签:AppImage, Cloudflare, Cloudflare API, HTTP防护, MITM代理, MITRE ATT&CK, SEO安全防护, WAF, Web应用防火墙, 入侵防护, 安全防护, 开源安全工具, 恶意请求, 数据可视化, 网络安全, 网络安全研究, 脚本, 自动更新, 自定义脚本, 逆向工程平台, 防火墙规则, 阻止请求, 隐私保护