Cloudflare安全規則實用指南:從路徑攔截到IP限制的10個經典范例

前言:在Cloudflare的安全防護體系中,自定義規則是抵御特定威脅的“精準武器”。除了基礎的路徑攔截,日常運維中還有許多高頻場景需要針對性配置。本文將通過10個實用范例,帶你掌握Cloudflare規則的靈活用法,覆蓋路徑防護、IP管控、請求頻率限制、UA過濾、地域封鎖等核心需求,構建更全面的安全防護網。

一、基礎范例:無視大小寫攔截特定URL路徑

(適用場景:阻止注冊頁、測試接口等敏感路徑的訪問)

需求

攔截 https://your-domain.com/user/register 及其所有大小寫變種(如 /User/Register/USER/REGISTER),但允許同域名其他路徑正常訪問。

規則表達式

(http.host eq "your-domain.com" and lower(http.request.uri.path) eq "/user/register")

邏輯解析

  • lower(http.request.uri.path):將請求的URI路徑轉為小寫(如 /User/Register/user/register);
  • 與目標路徑 /user/register 精準匹配,無論原始路徑大小寫如何,均能觸發攔截。

動作設置

選擇“阻止(Block)”,攔截所有命中該規則的請求。

二、攔截敏感文件訪問(如配置文件、備份文件)

(適用場景:防止 .env.sql 等敏感文件被惡意爬取)

需求

禁止訪問網站根目錄下的配置文件(如 .envconfig.ini)、數據庫備份文件(如 backup.sql),無論這些文件是否實際存在(提前阻斷探測行為)。

規則表達式

(http.host eq "your-domain.com" and (http.request.uri.path ends_with ".env" or http.request.uri.path ends_with ".ini" or http.request.uri.path ends_with ".sql"))

邏輯解析

  • ends_with 函數:匹配“以特定后綴結尾”的路徑(如 /admin/.env/backup/2023.sql 均會被命中);
  • 通過 or 連接多個條件,一次性覆蓋多種敏感文件類型。

動作設置

選擇“阻止(Block)”,并建議在“高級選項”中勾選“返回403狀態碼”,避免暴露文件是否存在的信息。

三、限制特定IP段訪問后臺管理路徑

(適用場景:僅允許公司內網IP訪問 /admin 等管理后臺)

需求

僅允許 192.168.1.0/24(內網段)訪問 https://your-domain.com/admin 路徑,其他IP訪問時直接攔截。

規則表達式

(http.host eq "your-domain.com" and http.request.uri.path starts_with "/admin" and not ip.src in {192.168.1.0/24})

邏輯解析

  • starts_with "/admin":匹配所有以 /admin 開頭的路徑(如 /admin/login/admin/user);
  • ip.src in {192.168.1.0/24}:判斷請求IP是否在內網段內;
  • not 取反:僅當IP不在允許段且訪問 /admin 路徑時,規則觸發。

動作設置

選擇“阻止(Block)”,非內網IP訪問管理后臺時會被直接攔截。

四、阻止惡意User-Agent的請求

(適用場景:攔截爬蟲、掃描工具等惡意客戶端的訪問)

需求

禁止包含“sqlmap”“nmap”“masscan”等關鍵詞的User-Agent訪問網站(這些通常是黑客掃描工具的標識)。

規則表達式

(http.host eq "your-domain.com" and (lower(http.user_agent) contains "sqlmap" or lower(http.user_agent) contains "nmap" or lower(http.user_agent) contains "masscan"))

邏輯解析

  • http.user_agent:獲取請求頭中的客戶端標識(如瀏覽器、爬蟲的名稱);
  • lower() 函數:統一轉為小寫,避免因大小寫差異漏判(如“SqlMap”“SQLMAP”均會被匹配);
  • contains:判斷User-Agent中是否包含指定關鍵詞。

動作設置

選擇“阻止(Block)”,或“挑戰(Challenge)”(要求驗證驗證碼),根據防護嚴格程度選擇。

五、限制API接口的請求頻率(防濫用)

(適用場景:防止 /api 接口被惡意調用導致服務器過載)

需求

https://your-domain.com/api 路徑設置頻率限制:單個IP每分鐘最多請求60次,超過則臨時攔截。

規則表達式

(http.host eq "your-domain.com" and http.request.uri.path starts_with "/api" and ratelimit(ip.src, 1m) > 60)

邏輯解析

  • ratelimit(ip.src, 1m) > 60:統計單個IP(ip.src)在1分鐘(1m)內的請求次數,超過60次則觸發規則;
  • 結合 starts_with "/api",僅對API路徑生效,不影響網站其他頁面。

動作設置

選擇“臨時攔截(Block for 10 minutes)”,或“速率限制(Rate Limit)”(Cloudflare會自動返回429狀態碼)。

六、禁止非瀏覽器 UA 批量抓取

(適用場景:防止無瀏覽器標識的腳本爬蟲批量爬取數據,減少內容盜用或服務器資源消耗)

需求

當請求的User-Agent(客戶端標識)不包含常見瀏覽器關鍵字(如Mozilla、Chrome)時,觸發驗證機制,篩選合法用戶與腳本爬蟲。

規則表達式

(http.host eq "your-domain.com" and not http.request.headers["user-agent"] matches "(Mozilla|Chrome|Safari|Edg)")

邏輯解析

  • http.request.headers["user-agent"]:精準提取請求頭中的UA字段;
  • matches "(Mozilla|Chrome|Safari|Edg)":通過正則匹配UA是否包含常見瀏覽器核心標識(幾乎所有主流瀏覽器UA均以“Mozilla”開頭,Chrome、Safari等為具體瀏覽器名稱);
  • not 取反:僅當UA不包含上述關鍵字時,規則觸發(排除合法瀏覽器,鎖定腳本爬蟲)。

動作設置

選擇“Managed Challenge”(托管挑戰):

  • 對疑似爬蟲的請求彈出驗證碼或JS驗證,合法用戶完成驗證后可正常訪問;
  • 相比直接“Block”,大幅降低誤殺風險(避免攔截特殊瀏覽器或合法工具)。

七、封鎖特定國家或地區

(適用場景:屏蔽業務不覆蓋、惡意流量高發的國家/地區,如境外攻擊源、無目標用戶的地區)

需求

根據業務需求,直接阻斷來自中國(CN)、俄羅斯(RU)等特定國家/地區的所有訪問(可根據實際風險調整國家列表)。

規則表達式

(http.host eq "your-domain.com" and (ip.geoip.country eq "CN" or ip.geoip.country eq "RU"))

邏輯解析

  • ip.geoip.country:Cloudflare內置的地理定位字段,返回請求IP對應的兩位大寫國家代碼(如中國為CN、美國為US、日本為JP,完整代碼可參考Cloudflare官方文檔);
  • eq "CN" or eq "RU":通過邏輯“或”匹配多個目標國家,可根據需求增減(如新增“KP”“IR”等);
  • 需確保域名已開啟Cloudflare地理定位功能(默認開啟,無需額外配置)。

動作設置

  • 嚴格防護:選擇“Block”,直接返回403狀態碼,拒絕該地區所有請求;
  • 寬松防護:可改為“Challenge”,允許該地區的合法用戶通過驗證訪問(適合業務可能覆蓋部分用戶的場景)。

八、阻止空 Referer 的 POST 請求

(適用場景:防范CSRF(跨站請求偽造)攻擊,POST請求通常用于提交敏感數據(如表單、支付),空Referer是CSRF的典型特征之一)

需求

僅攔截“POST方法+Referer為空”的請求,不影響GET方法(GET請求可能存在合法空Referer場景,如直接輸入URL訪問)。

規則表達式

(http.host eq "your-domain.com" and http.request.method eq "POST" and not http.request.headers["referer"] exists)

邏輯解析

  • http.request.method eq "POST":鎖定提交數據的請求方法,GET/DELETE等方法不觸發;
  • not http.request.headers["referer"] exists:判斷請求頭中是否缺少“Referer”字段(空Referer包含“Referer字段不存在”或“字段值為空”兩種情況,此表達式可覆蓋兩者);
  • 合法POST請求通常會攜帶Referer(標識請求來源頁面),空Referer大概率為惡意偽造請求。

動作設置

選擇“Block”:直接阻斷空Referer的POST請求,避免惡意提交數據,降低CSRF攻擊風險。

九、限制 URL 路徑深度(防目錄遍歷)

(適用場景:防止“目錄遍歷攻擊”,即黑客通過構造 ../../../etc/passwd 等路徑,試圖讀取服務器系統文件或敏感目錄)

需求

當請求的URL路徑層級≥6時觸發攔截,避免路徑過深導致的遍歷風險(正常業務路徑層級通常較少,如 /user/profile 層級為3)。

規則表達式

(http.host eq "your-domain.com" and length(split(lower(http.request.uri.path), "/")) ge 6)

邏輯解析

  • split(lower(http.request.uri.path), "/"):將路徑按“/”分割為數組(如 /a/b/c/d/e/f 分割后為 ["", "a", "b", "c", "d", "e", "f"]),lower() 函數統一小寫,避免路徑大小寫干擾;
  • length(...) ge 6:計算分割后的數組長度,≥6即觸發規則(上述例子數組長度為7,滿足條件);
  • 路徑層級的計算:數組長度-1(因路徑開頭的“/”會導致第一個元素為空),如數組長度6對應實際層級5,可根據業務調整“ge 6”中的數值(如業務路徑最深為4層,可設為“ge 5”)。

動作設置

選擇“Block”:直接攔截過深路徑的請求,從源頭阻止目錄遍歷攻擊。

十、限速登錄接口(基于路徑+方法)

(適用場景:防止登錄接口被“暴力破解”,即黑客通過批量嘗試賬號密碼的方式非法登錄)

需求

/api/login 路徑的POST請求(登錄接口通常為POST提交賬號密碼)設置嚴格速率限制:單個IP每分鐘最多嘗試10次,超過則臨時攔截。

規則配置

1. 規則表達式(定位登錄接口)
(http.host eq "your-domain.com" and http.request.uri.path eq "/api/login" and http.request.method eq "POST")
2. 速率限制設置(需在Cloudflare“WAF → Rate limiting rules”中單獨創建)
限制維度數值說明
統計對象單個IP(ip.src)防止單IP高頻嘗試
時間窗口1分鐘(1m)短窗口快速響應暴力破解
最大請求數10次可根據業務調整(如5次/1分鐘,更嚴格)

邏輯解析

  • 精準定位:通過“路徑(/api/login)+方法(POST)”雙重條件,僅對登錄接口生效,不影響其他API;
  • 速率限制:相比普通自定義規則的ratelimit函數,Cloudflare“Rate limiting rules”支持更靈活的配置(如階梯限速、自定義響應碼),更適合登錄這類高敏感接口。

動作設置

選擇“Block”:超過10次/分鐘的IP將被臨時攔截(默認返回429狀態碼),可在規則中設置攔截時長(如10分鐘),限制黑客持續嘗試。
在這里插入圖片描述

十一、規則配置的通用注意事項

  1. 代理狀態檢查:確保域名的DNS解析為“橙色云”(通過Cloudflare代理),否則規則無法生效;
  2. 執行順序:攔截類規則需放在“允許類規則”之前(可在Cloudflare控制臺拖動調整),避免允許規則優先觸發導致攔截失效;
  3. 測試驗證:通過 curl -v 目標URL 模擬請求(如指定空Referer、修改UA),或使用Cloudflare“規則測試器”(Rules Tester)驗證規則是否精準命中;
  4. 日志跟蹤:在“分析和日志 > Log Explorer”中搜索規則名稱,查看攔截記錄,確認是否存在誤殺(如合法用戶被攔截需調整規則條件);
  5. 業務適配:所有規則需結合業務場景調整(如路徑深度、速率限制數值),避免因規則過嚴影響正常用戶訪問。

總結

Cloudflare自定義規則的核心是“精準匹配 + 靈活動作”:通過路徑、IP、UA、地理定位、請求方法等維度組合條件,再搭配Block/Challenge/Rate Limit等動作,可覆蓋從基礎攔截到高級防護的全場景需求。

本文的10個范例涵蓋了“爬蟲防護、地域封鎖、CSRF防御、暴力破解防護、目錄遍歷防護”等高頻場景,實際配置時可進一步組合條件(如“IP地域+路徑+速率限制”),構建更嚴密的安全防護體系。同時,需定期查看規則日志,根據攻擊趨勢調整條件,確保防護效果與用戶體驗的平衡。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95320.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95320.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據結構(時空復雜度)

目錄 一、算法復雜度 二、時間復雜度 1.不同時間度代碼舉例 三、空間復雜度 一、算法復雜度 算法復雜度(評估算法優劣一個重要指標)分為時間復雜度和空間復雜度。 時間復雜度是指執行算法所需要的計算工作量,而空間復雜度是指執行這個…

ESXI8多網卡鏈路聚合

1. 背景 測試服務器只有千兆網卡,增加上行帶寬,使用兩塊網卡做鏈路聚合。 2. 環境 VM ESXI 8.0 華為交換機 S5735S 3. 交換機配置 負載均衡方式采用了src-dst-ipTrunk模式采用了手工負載分擔(測試了靜態LACP,未成功)4.…

從“人工驅動”到“AI協同”:良策金寶AI如何助力設計院數智化躍遷?

在“雙碳”目標驅動下,電力工程項目的數量與復雜度持續攀升。設計院面臨“項目多、周期短、人力緊”的三重壓力,傳統的“人工驅動”模式已難以為繼。良策金寶AI,正是這場變革的核心引擎。它以AI驅動數智化服務,為工程設計企業提供…

vue3 vite 自適應方案

兩種方案: 1 使用 postcss-pxtorem插件 npm install postcss-pxtorem autoprefixer --save-dev # 或 yarn add postcss-pxtorem autoprefixer -D 2、postcss-px-to-viewport npm install postcss-px-to-viewport --save-dev 或 yarn add postcss-px-to-viewport -D …

華為研發投資與管理實踐(IPD)讀書筆記

在全球科技產業競爭日趨激烈的背景下,企業研發管理早已告別 “依賴個體經驗、靠運氣突破” 的粗放時代,如何將研發創新從 “偶然成功” 轉化為 “可復制、可持續的必然成果”,成為所有追求長期競爭力的企業必須破解的命題。華為,作…

【LeetCode_283】移動零

刷爆LeetCode系列LeetCode第283題:github地址前言題目描述題目與思路分析代碼實現算法代碼優化LeetCode第283題: github地址 有夢想的電信狗 前言 本文用C實現 LeetCode 第283題 題目描述 題目鏈接:https://leetcode.cn/problems/move-z…

一文弄懂C/C++不定參數底層原理

目錄 一、C語言的可變參數:基于棧幀的手動讀取 (1)C函數調用的棧幀結構 (2)C 可變參數的 4 個核心宏:如何 “手動讀棧” (3)實戰代碼:用 C 可變參數實現求和函數 &a…

【Android】【設計模式】抽象工廠模式改造彈窗組件必知必會

寫一個 Android 版本的抽象工廠彈窗 Manager 管理器,使用 DialogFragment 實現,這樣能更貼近真實的開發場景。結構設計 抽象產品:BaseDialogFragment(繼承 DialogFragment)具體產品:LoginDialogFragment, …

Win64OpenSSL-3_5_2.exe【安裝步驟】

官網下載 注意:科學上網,可以加速下載速度! Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 下載后得到:Win64OpenSSL-3_5_2.exe 雙擊安裝 修改安裝路徑: 默認就選擇第一個。 重要提醒?…

華為云云原生架構賦能:大騰智能加速業務創新步伐

巨大的渦輪、細小的螺絲,一臺航天飛機發動機的三維模型呈現在屏幕上,遠程同事同步協作,一臺復雜設備在工程師高效的協同中不斷完善。深圳市大騰信息技術有限公司,正是這場工業變革的推動者之一。大騰智能以“云原生工業”的融合為…

基于https+域名的Frp內網穿透教程(Linux+Nginx反向代理)

系列文章目錄 基于http公網ip的Frp內網穿透教程(win server) 基于http域名的Frp內網穿透教程(win serverIIS反向代理) 基于http公網ip的Frp內網穿透教程(Linux) 基于https域名的Frp內網穿透教程(LinuxNginx反向代理) 目錄 系列文章目錄 前言 一、Frp是什么? 1. …

裸機程序(1)

一、裸機裸機是一個在計算機硬件與軟件開發領域高頻出現的概念,核心定義是 “未安裝操作系統(OS),僅包含硬件本身(或僅運行最底層硬件驅動 / 控制程序)的設備”。在電腦中,裸機會映射代碼到cpu&…

95%企業AI失敗?揭秘LangGraph+OceanBase融合數據層如何破局!?

本文較長,建議點贊收藏,以免遺失。更多AI大模型應用開發學習視頻及資料,盡在聚客AI學院。不知道你們有沒有遇到過,在我們一些實際落地的AI項目中,雖然前期“Demo 很驚艷,但上線后卻無人問津”。你們有沒有想…

樹莓集團產教融合:數字學院踐行職業教育“實體化運營”要求

在職業教育改革不斷深化的背景下,“實體化運營” 成為推動職業教育高質量發展的重要方向。樹莓集團積極響應這一要求,以產教融合為核心,打造數字學院,切實踐行職業教育 “實體化運營”,為培養高素質數字領域專業人才探…

ELK 統一日志分析系統部署與實踐指南(上)

#作者:張桐瑞 文章目錄1 ELK 技術棧概述1.1ELK 核心組件詳解1.2 ELK 工作流程2 ELK部署2.1 環境描述2.1.7 配置es集群下篇:《ELK 統一日志分析系統部署與實踐指南(下)》 鏈接: [https://blog.csdn.net/qq_40477248/article/detail…

上位機知識篇---poweshellcmd

要理解 PowerShell 和 CMD 的區別,我們可以先打個通俗的比方:CMD 像老式功能機,只能干打電話、發短信這些 “基礎活”;而 PowerShell 像智能手機,不僅能做基礎操作,還能裝 APP、玩復雜功能,甚至…

利用 Python 繪制環形熱力圖

暑假伊始,Coldrain 參加了學校舉辦的數模集訓,集訓的過程中,遇到了需要展示 59 個特征與 15 個指標之間的相關性的情況,在常用的圖表不大合適的情況下,學到了一些厲害的圖表,但是似乎千篇一律都是用 R 語言…

【序列晉升】27 Spring Cloud Sleuth給分布式系統裝上透視鏡

Spring Cloud Sleuth作為微服務架構中的核心監控組件,通過輕量級的無侵入式跟蹤機制,解決了分布式系統中請求路徑復雜、問題定位困難的痛點。它自動為每個服務請求創建唯一的Trace ID,并為每個服務間調用生成Span ID,形成完整的調…

Linux(2)|入門的開始:Linux基本指令(2)

一、基本指令介紹 回顧上篇博客Linux(1)|入門的開始:Linux基本指令-CSDN博客,我們已經學習了mkdir目錄的創建,touch普通文件的創建,光有創建肯定是不行的,接下來就介紹我們的刪除指令 1、rmdir指令&&rm指令 …

sv中forever如何結束

在 SystemVerilog 中,forever 循環本身無法自我結束。它的設計初衷就是創建一個永不終止的循環。 因此,要結束一個 forever 循環,必須從外部強制中斷它。主要有以下兩種方法:1. 使用 disable 語句(最常用和推薦的方法&…