本文目錄
PHP2Shell 是什麼?
PHP2Shell 是 2026 年 10 月公布的兩個 PHP 核心
跟客戶聊時常聽到:「我們網站很小,駭客不會找上我們吧?」這次的攻擊幾乎都是自動化掃描,掃的是整個網路,只看 PHP 版本,不看公司大小。
為什麼登入驗證和防火牆擋不住
打個比方:網站像一棟大樓,登入驗證是各樓層的門禁。PHP2Shell 的問題出在大樓的收發室,訪客的包裹一送進來,還沒走到任何一層樓,收發室就先出事了。
所以這次的漏洞有兩個特點:
- 不需要登入:網站有沒有會員系統、後台密碼設得多複雜,都不影響。
- 網站
程式 :問題在 PHP 本身,只有更新 PHP 才能完整修正。寫得 再好 也沒用
怎麼判斷你的網站有沒有受影響
關鍵只有一個:主機
| 網站目前的 PHP 版本 | 已修補的版本 | 官方正式修補 | 要做的事 |
|---|---|---|---|
| 8.5 | 8.5.12 以上 | ✓ 有 | 確認已更新到 8.5.12 |
| 8.4 | 8.4.27 以上 | ✓ 有 | 確認已更新到 8.4.27 |
| 8.3 | 8.3.36 以上 | ✓ 有 | 確認已更新,明年規劃升級到 8.4 |
| 8.2 | 8.2.35 以上 | ! 有,但 2026-12-31 停止支援 | 先更新,年底前升級到 8.4 以上 |
| 8.1、8.0、7.4 | 沒有正式版 | ✗ 只有原始碼修補 | 先套暫時防護,盡快升級 |
實務上最常見的誤會是「主機商說 PHP 已經是新版」。同一台主機常常同時裝好幾個版本,控制台顯示的不一定是網站實際在用的那個,請對方確認的是網站執行的版本。版本停止支援的完整說明,可以參考PHP 版本停止支援怎麼辦。
現在該做的 3 件事
1. 確認版本,能升級就升級
版本低於上表的修補版,就請主機商或維護廠商更新。8.2 以上通常是小版本更新,風險較低;7.4 到 8.1 的網站要跨大版本,程式、外掛與金流串接都可能要一起改,比較保險的做法是先在測試站升級、驗收後再上線。
2. 還不能升級,先套暫時防護
請主機商做這幾項設定,改完要重新啟動 PHP 才會生效:
- 關閉上傳進度功能(session.upload_progress):這個功能預設是開的,網站沒用到也會被利用。
- 限制單次請求的大小:在主機前端擋掉異常大的請求。
- 用 PHP 8.5 的網站,另外關閉致命錯誤的追蹤資訊(fatal_error_backtraces)。
講白一點,這些是先把收發室的窗口縮小,不是把漏洞補起來,仍要排定升級。
3. 檢查有沒有被攻擊的跡象
國外雲端業者在公告前 4 天就觀察到攻擊嘗試,所以 10 月 21 日之後才更新、或到現在還沒更新的網站,都值得回頭看一下。請維護廠商檢查:
- 錯誤紀錄有沒有成批出現「記憶體不足」的錯誤,而且發生在網站程式執行之前
- 網路請求裡有沒有平常不會出現的上傳進度欄位
- 主機上有沒有網站程式自己開出來的系統指令程序
只要有一項可疑,就照網站被駭的緊急應變 SOP處理,不要急著刪檔。
要問主機商或維護廠商的 3 個問題
| 要問的問題 | 好的回答 | 要小心的回答 |
|---|---|---|
| 網站實際執行的 PHP 版本是多少? | 直接給出完整版本號,例如 8.4.27 | 「應該是新版吧」 |
| PHP2Shell 的修補做了嗎? | 已更新到修補版,或已套暫時防護並排好升級日期 | 「我們網站很小,不會被打」 |
| 有檢查過錯誤紀錄嗎? | 說得出檢查了哪段時間、有沒有異常 | 「沒有出問題就不用看」 |
結語:漏洞會再出現,版本要跟上
PHP2Shell 不會是最後一個嚴重漏洞,根據元伸科技 24 年的經驗,記住這 3 點:
- 先知道
網站用哪個 PHP 版本 :不知道版本,就無法判斷下一次漏洞跟你有沒有關係。 - 暫時防護不是修正:可以爭取時間,但修補版才是終點。
- 把 PHP 升級
排進 :支援到期前就升級,不要每次都等漏洞公告才處理。每年的維護
更多防護做法可以參考網站資安防護指南,或定期照網站資安健檢清單自己檢查。不確定網站目前的狀況,也可以把網址交給 元伸科技 幫你看一下。