菜单导航

技术文档
Cloudflare自定义安全规则配置
技术文档

Cloudflare自定义安全规则配置

NoiseNoise
2026-05-23

前言:如果你有网站或服务配置在cloudflare,一定免不了被扫描和恶意攻击,而配置Cloudflare的自定义安全规则可避免这些问题,

进入https://dash.cloudflare.com 官网,点击安全规则,选择创建规则,选择自定义规则,然后点击编辑表达式

1779538516785

下面是 3 套可直接复制粘贴配置 的 Cloudflare 自定义安全规则表达式

1:纯静态站(推荐动作:Block)

(
  http.request.method ne "GET"
  and http.request.method ne "HEAD"
)
or
(
  lower(http.request.uri.path) in {
    "/.env" "/.env.local" "/.env.dev" "/.env.prod" "/.env.production"
    "/.git/config" "/.git/HEAD" "/.git/index"
    "/.svn/entries" "/.hg/store"
    "/.ds_store" "/.htaccess" "/.htpasswd"
    "/composer.json" "/composer.lock"
    "/package.json" "/package-lock.json" "/yarn.lock" "/pnpm-lock.yaml"
    "/id_rsa" "/id_rsa.pub"
    "/phpinfo.php" "/server-status"
    "/wp-login.php" "/wp-config.php" "/xmlrpc.php"
    "/config.php"
  }
)
or
(
  starts_with(lower(http.request.uri.path), "/wp-admin")
  or starts_with(lower(http.request.uri.path), "/wp-includes")
  or starts_with(lower(http.request.uri.path), "/phpmyadmin")
  or starts_with(lower(http.request.uri.path), "/pma")
  or starts_with(lower(http.request.uri.path), "/admin")
  or starts_with(lower(http.request.uri.path), "/cgi-bin")
  or starts_with(lower(http.request.uri.path), "/.git")
  or starts_with(lower(http.request.uri.path), "/.svn")
  or starts_with(lower(http.request.uri.path), "/.hg")
)
or
(
  lower(http.request.uri.path) contains "../"
  or lower(http.request.uri.path) contains "..%2f"
  or lower(http.request.uri.path) contains "%2e%2e%2f"
  or lower(http.request.uri.path) contains "%2f..%2f"
  or lower(http.request.uri.path) contains "%5c..%5c"
)
or
(
  lower(http.user_agent) contains "sqlmap"
  or lower(http.user_agent) contains "acunetix"
  or lower(http.user_agent) contains "nikto"
  or lower(http.user_agent) contains "masscan"
  or lower(http.user_agent) contains "nmap"
  or lower(http.user_agent) contains "zgrab"
  or lower(http.user_agent) contains "gobuster"
  or lower(http.user_agent) contains "dirbuster"
  or lower(http.user_agent) contains "feroxbuster"
  or lower(http.user_agent) contains "wpscan"
)
or
(
  http.user_agent eq ""
  or len(http.user_agent) lt 8
)

说明

  • 非 GET/HEAD 拦截块

目的:把“写入型攻击面”从边缘层直接砍掉。静态站正常只读;出现 POST/PUT/DELETE 等,通常是扫描器在试:上传、RCE、框架路由、表单打点、CORS/OPTIONS 探测等。

  • 拦截方向:阻断自动化探测 + 阻断尝试写入/提交的攻击流量。

  • 敏感文件精确命中块(in {...}

目的:阻断信息泄露类探测。.env(密钥/配置)、/.git//.svn//.hg(源码与历史)、依赖锁文件(版本指纹)、phpinfo.php/server-status(环境指纹)、WP 关键入口(被大规模字典扫描)。

  • 拦截方向:阻断扫描字典命中 → 防止后续被精准利用。

  • 高风险目录前缀块(starts_with

目的:挡“后台/面板/版本库目录级探测”。/admin/wp-admin/phpmyadmin/cgi-bin/.git* 这类路径是扫描器的默认清单。

  • 拦截方向:阻断爆破前置入口探测与面板探测。

  • 目录穿越块(contains** 运算符)**

目的:挡路径穿越/LFI 探测(读系统文件、读配置、读源码)。由于没正则,覆盖的是最常见形态(含部分编码)。

  • 拦截方向:阻断“读敏感文件”的探测流量。

  • 扫描器 UA / 空 UA 块

目的:快速降噪。大量自动化工具会带明显 UA(sqlmap、wpscan 等);空/极短 UA 也常见于脚本与探测器。

  • 拦截方向:阻断低成本扫描器与脚本请求,降低压力与日志噪声。

注意

  • 只要你的静态站有任何表单提交、Webhook、API,第一段会误杀:这种站不要用本规则,改用“混合站 / 内容站规则”。

规则 2:混合站(同域名:静态 + /api + /admin;推荐动作:Managed Challenge)

这套是“实战最常用”的:静态区严、API 区按协议约束、后台区挑战,整体误杀低。

可直接复制的表达式

(
  (not starts_with(lower(http.request.uri.path), "/api/"))
  and (not starts_with(lower(http.request.uri.path), "/admin"))
  and (http.request.method ne "GET" and http.request.method ne "HEAD")
)
or
(
  starts_with(lower(http.request.uri.path), "/api/")
  and not (http.request.method in { "GET" "POST" "PUT" "PATCH" "DELETE" "OPTIONS" })
)
or
(
  starts_with(lower(http.request.uri.path), "/api/")
  and (http.request.method in { "POST" "PUT" "PATCH" })
  and not (lower(http.request.headers["content-type"][0]) contains "application/json")
)
or
(
  starts_with(lower(http.request.uri.path), "/admin")
  and not cf.client.bot
)
or
(
  lower(http.request.uri.path) in {
    "/.env" "/.env.local" "/.env.dev" "/.env.prod" "/.env.production"
    "/.git/config" "/.git/HEAD" "/.git/index"
    "/.svn/entries" "/.hg/store"
    "/.ds_store" "/.htaccess" "/.htpasswd"
    "/composer.json" "/composer.lock"
    "/package.json" "/package-lock.json" "/yarn.lock" "/pnpm-lock.yaml"
    "/id_rsa" "/id_rsa.pub"
    "/phpinfo.php" "/server-status"
    "/wp-login.php" "/wp-config.php" "/xmlrpc.php"
    "/config.php"
  }
)
or
(
  starts_with(lower(http.request.uri.path), "/wp-admin")
  or starts_with(lower(http.request.uri.path), "/phpmyadmin")
  or starts_with(lower(http.request.uri.path), "/pma")
  or starts_with(lower(http.request.uri.path), "/cgi-bin")
  or starts_with(lower(http.request.uri.path), "/.git")
  or starts_with(lower(http.request.uri.path), "/.svn")
  or starts_with(lower(http.request.uri.path), "/.hg")
)
or
(
  lower(http.request.uri.path) contains "../"
  or lower(http.request.uri.path) contains "..%2f"
  or lower(http.request.uri.path) contains "%2e%2e%2f"
  or lower(http.request.uri.path) contains "%2f..%2f"
  or lower(http.request.uri.path) contains "%5c..%5c"
)
or
(
  lower(http.user_agent) contains "sqlmap"
  or lower(http.user_agent) contains "acunetix"
  or lower(http.user_agent) contains "nikto"
  or lower(http.user_agent) contains "masscan"
  or lower(http.user_agent) contains "nmap"
  or lower(http.user_agent) contains "zgrab"
  or lower(http.user_agent) contains "gobuster"
  or lower(http.user_agent) contains "dirbuster"
  or lower(http.user_agent) contains "feroxbuster"
  or lower(http.user_agent) contains "wpscan"
)
or
(
  http.user_agent eq ""
  or len(http.user_agent) lt 8
)
or
(
  cf.threat_score gt 20
)

说明

  • 静态区方法锁(第一块)

只对“非 /api 且非 /admin”的页面区生效:静态页面只允许 GET/HEAD。

  • 价值:既保护静态区不被乱 POST,又不会误伤 API/后台这种本来就需要 POST 的区域。

  • 拦截方向:阻断静态区写入探测、框架路由探测、上传尝试。

  • API 方法白名单(第二块)

只允许常规 REST 方法,阻断 TRACE/CONNECT/PROPFIND 等非常规方法探测。

  • 拦截方向:阻断网关/代理差异探测与奇技淫巧的探测请求。

  • API 写操作强制 JSON(第三块)

你的 API 写入若规范化为 JSON,这块可以过滤掉大量垃圾表单提交、multipart 上传探测。

  • 拦截方向:阻断“非预期内容类型”的低成本攻击脚本。

  • 后台区挑战(第四块)

not cf.client.bot 的作用是让已识别的“好 Bot”不被挑战;其余访问后台触发挑战/拦截。

  • 拦截方向:显著提高爆破与扫描成本,兼顾真人可用性(比纯 Block 更稳)。

  • 敏感文件/高危目录/穿越/UA/威胁分数(后续块)

这是全站“防扫描外壳”,核心目标是:敏感泄露入口、版本库入口、面板入口、穿越探测、明显扫描器、威胁分数高的请求。

  • 拦截方向:压制扫描字典与自动化攻击前置流量,减少后端负载与日志。

注意

  • 如果你的 API 支持 application/x-www-form-urlencodedmultipart/form-data,第三块会误杀;那就删掉第三块或加白名单路径。

3:WordPress 站(推荐动作:Managed Challenge)

这套不靠正则,专打 WP 常见爆破/探测入口,配置后立即见效。

(
  lower(http.request.uri.path) in {
    "/wp-config.php"
    "/wp-login.php"
    "/xmlrpc.php"
    "/.env" "/.env.local" "/.env.prod" "/.env.production"
    "/.git/config" "/.git/HEAD" "/.svn/entries"
  }
)
or
(
  starts_with(lower(http.request.uri.path), "/wp-admin")
  or starts_with(lower(http.request.uri.path), "/wp-includes")
)
or
(
  starts_with(lower(http.request.uri.path), "/phpmyadmin")
  or starts_with(lower(http.request.uri.path), "/pma")
)
or
(
  lower(http.request.uri.path) contains "../"
  or lower(http.request.uri.path) contains "%2e%2e%2f"
  or lower(http.request.uri.path) contains "%2f..%2f"
)
or
(
  lower(http.user_agent) contains "wpscan"
  or lower(http.user_agent) contains "sqlmap"
  or lower(http.user_agent) contains "acunetix"
  or lower(http.user_agent) contains "nikto"
  or lower(http.user_agent) contains "gobuster"
  or lower(http.user_agent) contains "dirbuster"
)
or
(
  http.user_agent eq ""
  or len(http.user_agent) lt 8
)
or
(
  cf.threat_score gt 20
)

说明

  • WP 核心敏感入口块(wp-login/xmlrpc/wp-config

/wp-login.php:爆破入口核心命中点。

  • /xmlrpc.php:历史上被大量用于爆破与放大类调用(是否 Block 取决于你是否需要 Jetpack/APP)。

  • /wp-config.php:正常永远不该被访问到,命中几乎等同“明确恶意”。

  • 拦截方向:打掉爆破与敏感配置探测。

  • wp-admin/wp-includes 前缀块

后台目录与核心代码目录探测,常见于漏洞利用前置探测。

  • 拦截方向:提高后台被暴露与被爆破的门槛。

  • phpMyAdmin/pma 前缀块

WP 站经常被顺带扫描数据库面板;正常不应公网可达。

  • 拦截方向:阻断面板探测与弱口令爆破入口。

  • 穿越块 + 扫描器 UA + 威胁分数

进一步压制“批量扫描 + 注入探测 + 目录枚举”组合流量。

  • 拦截方向:减少被持续扫描的强度与频率。
版权声明

本文为「Noise」原创内容或编译整理;除特别说明外,文中图片并非个人手绘,可能来源于网络、AI 生成、截图等,后期使用 PhotoMator / Procreate 进行处理,仅用于学习与交流。如涉及版权或来源标注不全,请联系处理。未经授权,禁止用于商业用途,禁止抹除水印。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论功能加载中...
Noise

Noise

执迷不悟

推荐阅读

JsDelivr CDN加速访问服务部署指南
技术文档

JsDelivr CDN加速访问服务部署指南

Nose | 2026-05-23

介绍jsDelivr CDN部署服务,支持GitHub、npm等链接解析并提供直连、代理为主或隐藏访问方式。具备自动去重、安全扫描、日志监控、流量统计等高级功能。提供Docker一键部署方案及Nginx配置文件使用说明,满足开发图床及在线使用需求。

12
Noise导航网站MCP、Skill、搜索API使用说明
技术文档

Noise导航网站MCP、Skill、搜索API使用说明

Nose | 2026-05-14

目前公开了导航站的搜索功能相关MCP、Skill、API,下面文档以此说明,配置后你可以在任意支持的AI客户端内实现使用自然语言一键检索站内收录的地址

48
安全管理网络层封禁恶意攻击对接指南
技术文档

安全管理网络层封禁恶意攻击对接指南

Nose | 2026-04-10

本文指南如何配置网络层封禁恶意攻击,包括ipset选择、Docker部署优化、同步脚本和计划任务设置。适用于防范扫描、爬虫和外部攻击,强调安全最佳实践和注意事项。

37