WAF 是什麼?從 Cloudflare 提前擋下 PHP 重大漏洞,看懂網站應用程式防火牆

恆遠數位編輯團隊約 9 分鐘閱讀
WAF 是什麼文章封面:先擋再修的防線,Cloudflare 在 PHP 漏洞公開前 9 小時上防護
複製引文

WAF(Web Application Firewall,網站應用程式防火牆)是擋在網站前面的一道檢查站,專門看每一個進出網站的請求,把看起來像攻擊的擋下來。它的價值在漏洞剛爆出來、網站還來不及修補的那段時間最明顯:2026 年 10 月 PHP 爆出重大漏洞 PHP2Shell,Cloudflare 在官方公開漏洞前大約 9 小時,就幫所有用它 WAF 的網站(包含免費方案)自動加上防護規則。

這篇用這次事件當例子,把 WAF 是什麼、能做什麼、做不到什麼講清楚。如果你想看漏洞本身與網站該怎麼升級,可以先讀我們整理的 PHP2Shell 白話拆解與當天修補實錄;這篇講的是另一半:修補完成之前,有什麼東西能先幫你擋。

WAF 是什麼?一張表看懂它在保護什麼

一句話:WAF 專門保護「網站」這一層,看的是請求的內容,判斷有沒有人想利用網站的漏洞。用大樓來比喻,一般防火牆是大門的門禁,決定哪些門可以進出;WAF 是大廳的保全,會看你手上拿的東西,發現有人帶著撬鎖工具就攔下來。

一般防火牆

WAF(網站應用程式防火牆)

像什麼

大樓門禁:哪些門開、哪些門關

大廳保全:檢查每個訪客帶了什麼

看什麼

連線從哪裡來、要去哪個埠

網頁請求的內容,例如表單送出的資料、網址參數

擋什麼

不該開放的服務被連進來

SQL 注入、跨站腳本、利用軟體漏洞的攻擊

放在哪

主機或機房的網路邊界

網站前面,常見是 Cloudflare 這類代理服務

誰需要

所有主機

有對外網站、表單、會員登入的公司

兩者分工不同,不能互相取代。主機層的防火牆怎麼設,可以參考 伺服器防火牆是什麼;這篇專講網站層的 WAF。

Cloudflare 這次做了什麼:漏洞公開前 9 小時就上防護

一句話:Cloudflare 參與了 PHP 漏洞的協調處理,在官方公開前先把防護規則推給所有客戶,免費方案也不用自己設定。下面整理自 Cloudflare 官方公告。

時間(台灣時間)

發生什麼事

10 月 20 日

漏洞細節提前外流;Cloudflare 之後觀察到有人開始攻擊客戶網站,而且不斷變換攻擊手法想繞過防護

10 月 21 日上午 11 點

Cloudflare 對所有使用 WAF 的網站(含免費方案)預設啟用防護規則

10 月 21 日晚上

PHP 官方公開漏洞並發布修補版本,比 Cloudflare 上防護晚了大約 9 小時

Cloudflare 在公告裡提到,他們和 PHP 基金會、OpenAI、Wiz 等單位一起協調處理這個漏洞,所以能在公開前就準備好規則。對免費方案的網站來說,這次不需要做任何設定,只要網站流量有經過 Cloudflare,就自動受到保護。

這也說明了 WAF 的一個關鍵價值:漏洞從公開到被大量攻擊的時間越來越短,這次甚至公開前就有人在試。網站管理者再快,也需要時間盤點、測試、升級;WAF 能把這段空窗期補起來。

為什麼這次的漏洞特別難擋:它的攻擊長得很像正常流量

一句話:這次的攻擊請求,很難光看「長相」就分辨是好是壞,所以 Cloudflare 改成連網站的「回應」一起看。

傳統 WAF 的做法是檢查「送進來的請求」,看到可疑的寫法就擋。但這次的漏洞是靠大量或特製的請求讓 PHP 出錯,單看請求本身,跟正常的大量流量很難區分。規則訂太嚴,正常客人會被誤擋;訂太鬆,攻擊又會漏掉。

Cloudflare 這次推出的新做法叫「完整交易偵測」(官方說明):同時看「客人送進來什麼」和「網站回了什麼」。用便利商店比喻,以前店員只看客人拿什麼商品到櫃檯;現在連收銀機吐出什麼也一起看,如果發現收銀機被騙開了抽屜,就在錢交出去之前攔下來。

只看請求(傳統做法)

請求加回應一起看(這次的新做法)

判斷依據

送進來的內容像不像攻擊

送進來的內容,加上網站的回應有沒有出現被攻破的跡象

優點

反應快,能在請求進網站前就擋

能確認攻擊「真的成功了」才擋,誤擋正常客人的機會少很多

限制

攻擊長得像正常流量時,容易誤擋或漏掉

請求已經進到網站,只能擋住回應,不能取代修補

最後一列很重要:新做法能擋住「攻擊者拿到結果」,但攻擊請求已經碰到你的網站了。這就是為什麼 Cloudflare 自己也一再強調,WAF 是多一層保護,修補 PHP 才是根本。

WAF 平常都在擋什麼?五種最常見的網站攻擊

一句話:PHP2Shell 這種大漏洞不常有,WAF 平常大部分時間在擋的,是每天都有的自動化攻擊。只要網站上線,不管規模多小,幾乎每天都會被機器人掃過一輪。

攻擊類型

白話解釋

生活比喻

沒擋住的後果

猜密碼(暴力破解)

機器人用常見帳號密碼組合,一直嘗試登入網站後台

小偷拿一大串鑰匙一支一支試

後台被登入,網站被改、被放惡意程式

找設定檔

機器人在網站上找不小心留下的備份檔、設定檔

小偷翻你家門口的地墊找備用鑰匙

資料庫密碼、金鑰外洩

SQL 注入

在表單或網址裡夾帶指令,騙網站把資料庫內容吐出來

在點餐單上偷寫「順便把收銀機打開」

會員資料、訂單資料被撈走

跨站腳本(XSS)

在留言或表單裡塞惡意程式,讓其他訪客的瀏覽器執行

在公布欄貼一張會讓看到的人上當的假公告

訪客的登入狀態被偷、被導到釣魚網站

利用已知漏洞

針對網站使用的軟體版本,用公開的漏洞直接攻擊

知道某款門鎖有設計瑕疵,專挑裝這款鎖的門

主機被接管,這次的 PHP2Shell 就屬於這一類

這五種攻擊的共通點是「大量、自動、不挑對象」。攻擊者會對整個網路掃一遍,看誰的門沒鎖好,你只是剛好在名單上。所以「我們公司很小,駭客不會有興趣」這個想法是行不通的,小網站反而常因為沒人維護而成為最容易得手的目標。

WAF 擋這些攻擊的方式,主要是靠「已知攻擊的樣子」加上「異常行為」來判斷。例如同一個來源在一分鐘內嘗試登入幾百次,或請求裡出現典型的注入寫法,就直接攔下。好的 WAF 服務會持續更新這些判斷規則,像這次 Cloudflare 在漏洞公開前就推出新規則,就是這種持續更新的價值。

WAF 能做什麼、做不到什麼

一句話:WAF 是幫你爭取時間的保全,修門鎖還是要靠更新。把它當成唯一防線,是最常見的誤解。

WAF 做得到

WAF 做不到

在修補前擋下已知的攻擊手法

修好網站本身的漏洞

擋下大量常見攻擊,例如猜密碼、掃描漏洞、注入攻擊

保證擋住每一種變形的新攻擊

讓你從後台看到誰在攻擊、攻擊了什麼

保護沒有經過它的流量,例如有人直接連主機的位址

降低網站被入侵與資料外洩的機率

處理已經被入侵的網站,例如清除後門

中間那列「直接連主機的位址」特別容易被忽略。如果攻擊者知道你主機的真實位址,就能繞過 WAF 直接打。所以用 WAF 的網站,主機最好設定成只接受經過 WAF 的流量。網站常見的攻擊類型,可以參考 OWASP 整理的十大網站風險。

⚠️常見誤解:裝了 WAF 就不用更新

這次 Cloudflare 的公告特別提醒,就算有 WAF 保護,PHP 還是要升級。WAF 擋的是已知的攻擊樣子,攻擊者一直在變換手法,總有可能漏掉。修補完成之前開著 WAF、修補完成之後也繼續開著,兩者一起才是完整的做法。升級步驟可以看 PHP2Shell 修補實錄。

導入 WAF 前要注意的三件事

一句話:WAF 開下去之前,先想好「誤擋怎麼辦」。最常見的抱怨是:防護一開,正常客人也被擋在門外。

注意事項

為什麼

建議做法

先觀察再封鎖

規則太嚴會誤擋正常客人,例如表單送出失敗、後台進不去

新規則先用「只記錄不封鎖」跑一兩週,確認沒有誤擋再改成封鎖

留一條誤擋的申訴管道

客人被擋了通常不會告訴你,只會默默離開

在錯誤頁放上客服聯絡方式,定期看被擋的紀錄有沒有正常客人

主機只收經過 WAF 的流量

攻擊者知道主機真實位址就能繞過 WAF

主機的防火牆只開放給 WAF 服務的來源,關掉其他直接連線

另外,WAF 也會影響一些正常但「長得像攻擊」的操作。例如網站後台貼上一段程式碼、上傳大檔案、串接第三方服務的回呼。導入時請負責的人把這些情境都測一輪,必要時針對特定路徑調整規則,不要為了方便就整個關掉。

萬一真的被攻破,WAF 幫不上忙,要照被駭的止血步驟處理,可以參考 WordPress 網站被駭怎麼辦。如果網站是交給廠商維護,WAF 的設定與攔截紀錄的檢視,也建議寫進維護範圍,維護合約範本 有 SLA 與責任範圍的寫法。

預算有限的公司,可以從免費方案開始:先讓流量經過 WAF,看看後台的攔截紀錄,你通常會很驚訝每天有多少攻擊被擋下。有了這些數字,再決定要不要升級付費方案,會比憑感覺花錢實在得多。

我的網站有被 WAF 保護嗎?三步驟自己確認

一句話:先確認流量有沒有經過 WAF,再確認防護有沒有打開,最後看紀錄有沒有在運作。不懂技術的老闆,可以直接把下面這張表交給負責網站的人。

圖表載入中…

要確認什麼

怎麼問負責的人

合格的答案

流量有沒有經過 WAF

我們的網站有沒有用 Cloudflare 或其他 WAF?

有,而且網址是經過代理的狀態

防護有沒有打開

託管的防護規則有開嗎?是封鎖還是只記錄?

有開,而且是封鎖模式

有沒有在運作

最近一週攔下了多少攻擊?

能從後台拿出攔截紀錄

會不會被繞過

主機能不能被直接連到?

主機只接受經過 WAF 的流量

Cloudflare 的免費方案已經包含這次的防護,付費方案則有更完整的託管規則(官方說明)。如果網站有會員登入或表單,WAF 搭配表單防機器人機制效果更好,可以參考 表單機器人防護採購指南。

中小企業需要 WAF 嗎?怎麼選

一句話:只要網站有對外開放的表單、登入或購物功能,就值得有一層 WAF。好消息是,最基本的一層不一定要花大錢。

你的網站

建議

大概的成本

純形象網站,沒有表單與登入

用免費方案的代理加基本防護就夠

每月 0 元起

有詢價表單、會員登入、部落格後台

開啟託管規則,搭配表單防機器人

每月約數百到上千元台幣

電商、預約、會員系統,存有個資

付費方案的完整託管規則,定期看攔截紀錄

每月數千元台幣起,依流量與方案而定

政府、金融、醫療相關系統

依法規要求選用,並搭配弱點掃描與滲透測試

依需求報價

WAF 只是網站資安的其中一層。完整的做法還包括定期更新、備份、弱點掃描。三種資安檢測的差別,可以參考 弱點掃描、滲透測試、壓力測試差在哪;自動化攻擊會怎麼撈資料,神腦資安事件拆解 有實際案例。Cloudflare 除了 WAF,還能在主機掛掉時先顯示快取頁面,做法可以看 Cloudflare 救援機制實戰。

看到這裡,如果你也在想「我們的網站到底有沒有被保護到」,我們很樂意 聽你聊聊現在網站的狀況,一起看看哪一層最值得先補。

ℹ️我們怎麼看

這次事件讓我們看到一個趨勢:漏洞從外流到被攻擊,已經快到網站管理者來不及反應,3 年內「先擋再修」會變成網站維運的標準做法,WAF 會像防毒軟體一樣成為基本配備。但我們也看過不少人裝了 WAF 就以為高枕無憂,結果網站好幾年沒更新。我們的取捨是:WAF 一定要有,更新流程也一定要跑,兩件事分開檢查。給老闆的判斷工具很簡單:問負責網站的人兩句「我們有 WAF 嗎?」「上次更新是哪一天?」兩個都答得出來,才算有人在顧。網站被駭後的處理步驟,可以參考 WordPress 網站被駭怎麼辦;維護廠商該承諾什麼,可以看 維護合約範本。

ℹ️我們做過這件事

這次 PHP2Shell 公告後,我們當天就把自家與代管的網站盤點、回測並升級完成,每站停機不到一分鐘。我們累積了 40+ 企業客製案落地,網站上線後的防護設定、版本更新與資安修補,都是維運的日常。看到這裡,如果你也在想「我們的網站該加哪一層防護」,我們很樂意 聽你聊聊現在的實際情況,一起看看從哪一塊開始最划算。

QWAF 是什麼?

WAF 是網站應用程式防火牆(Web Application Firewall),擋在網站前面檢查每一個請求的內容,把像攻擊的請求擋下來,例如 SQL 注入、跨站腳本與利用軟體漏洞的攻擊。它保護的是網站這一層,跟主機的一般防火牆分工不同。

QWAF 和一般防火牆差在哪?

一般防火牆像大樓門禁,決定哪些連線可以進來;WAF 像大廳保全,會檢查進來的人帶了什麼。一般防火牆擋不住從網站正門進來的攻擊,所以有對外網站的公司兩者都需要。

QCloudflare 免費方案有 WAF 嗎?

有基本的託管防護。這次 PHP2Shell 漏洞,Cloudflare 在漏洞公開前大約 9 小時,就對所有使用 WAF 的網站(含免費方案)自動啟用防護規則,免費方案不需要另外設定,前提是網站流量有經過 Cloudflare。

Q有 WAF 就不用更新網站了嗎?

不行。WAF 擋的是已知的攻擊樣子,攻擊者會一直變換手法,總有可能漏掉,也擋不住直接連到主機的流量。Cloudflare 在這次公告也提醒,有 WAF 保護仍然要升級 PHP。WAF 是幫你爭取修補時間,修補才是根本。

Q怎麼知道我的網站有沒有被 WAF 保護?

問負責網站的人四件事:網站流量有沒有經過 WAF 服務、防護規則有沒有開啟且是封鎖模式、最近有沒有攔截紀錄、主機是不是只接受經過 WAF 的流量。四件都答得出來,才算真的有保護。

分享文章
恆

AUTHOR

恆遠數位編輯團隊

查看作者頁

留言(0)

尚無留言,成為第一個留言的人吧!

需要網站系統架設或軟體開發?

無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。