外觀
健檢結果與處理範圍
資料來源:2026-04-17 健檢報告 (含 2026-04-17 二次審查修訂)
本文件包含三個部分:健檢發現的主要問題、維護期間內執行的項目、本次不執行的項目。項目是否納入執行,以「可透過既有後台或平台設定完成,且不需修改既有業務程式碼」為分界。
一、健檢發現的主要問題
1. 資安防護層
| 項目 | 現況 |
|---|---|
| HTTP 安全標頭 | 7 項中缺 3 項 |
| SSL 模式 | Full (未驗證源站憑證) |
| HTTPS 強制跳轉 | 未啟用 |
| TLS 最低版本 | 1.0 |
| Cloudflare WAF | 未啟用 |
| XML-RPC | 開啟中 |
| REST API 用戶列舉 | 暴露中 |
| ZAP 動態掃描 (未登入) | 中風險告警 8 項 |
| ZAP 動態掃描 (已登入) | 中風險告警 7 項 |
2. 主題程式碼層
woodmart-child 子主題共 29 個檔案,functions.php 2,425 行,主要商業邏輯集中於單一檔案管理。
| 項目 | 數量 |
|---|---|
| 主題審查高風險 | 4 項 (含 XSS、授權後任意 PHP 執行風險) |
| 主題審查中風險 | 9 項 (含 HPOS 不相容、WooCommerce 範本過舊、staging URL 殘留、第三方 CDN 無 SRI) |
| 主題審查低風險 | 12 項 (含 console.log 殘留、可近用問題、備份檔殘留、error_log、未使用程式碼) |
| SonarQube 漏洞 | 6 |
| SonarQube Bug | 3,642 |
| SonarQube Security Hotspot | 548 |
| SonarQube Code Smell | 69,047 |
- 主題審查已於 2026-04-17 進行二次審查與分類校正:修正 1 項事實誤述 (THEME-012:前端未送 nonce,後端實際有
check_ajax_referer) ,並調整 11 項嚴重度/分類語意。
3. 外掛層
| 項目 | 現況 |
|---|---|
| 待更新外掛 | 28 個 |
| 長期未更新外掛 | 2 個 (超過 2 年未更新) |
| 已公開重大漏洞 | 本次掃描 0 |
4. 相容性現況
- WooCommerce
single-product.php範本版本 1.6.4 - WooCommerce email 範本基於 3.7.0
- HPOS 不相容 hook 仍在使用
welcome_email.php指向 Cloudways staging URL- 追蹤碼 ID、運費金額、email 地址多處硬編碼
5. 效能
| 項目 | 現況 | 業界門檻 |
|---|---|---|
| PageSpeed Mobile 平均 | 35 | — |
| PageSpeed Desktop 平均 | 53 | — |
| Swap 使用量 | 依主機即時值 | < 200 MB |
| WP-Cron 事件數 | 依主機即時值 | < 100 |
| WP-CLI 診斷環境 | 輸出混入 HTML,無法解析 JSON | — |
二、維護期間內執行的項目
目的:在不變更既有業務程式碼的前提下,透過可回滾的設定型作業建立基本防護,降低維護期間內的曝險。
1. 應用層防護:Patchstack
- 安裝並啟用即時漏洞防護外掛
- 設定 WordPress 後台登入保護 (暴力破解防護、登入嘗試限制)
- 盤點管理員帳號與權限,啟用多因素驗證 (MFA)
- 套用應用層 WAF 規則,在外掛/主題漏洞公開時即時防護
- 客戶提供公司/員工 IP 白名單後,依此站架構調教規則
- 建立高風險事件通知 (異常登入、規則觸發) 供維護期間追蹤
- 授權與管理權限於維護期間由維護方代管並持續監控
2. 網路層防護:Cloudflare
- 於甲方既有 Cloudflare 帳號內進行規則設定與調整
- 啟用 Cloudflare WAF 規則集 (OWASP、SQL Injection、XSS)
- SSL 模式調整為 Full (Strict)
- 開啟 Always Use HTTPS
- 最低 TLS 版本調為 1.2
- 以 Transform Rules 補齊缺失的 HTTP 安全標頭
- 啟用 Bot Fight Mode 與速率限制
- 於 Cloudways 可行範圍內設定源站存取限制,降低繞過 Cloudflare 的風險
3. 平台層基本整備
- 28 個待更新外掛於測試驗證後套用
- WordPress 核心更新至最新版
- Cloudways 平台設定排查:Swap、Cron、autoload、transients、revisions
- 透過安全外掛封鎖 XML-RPC 與 REST API 用戶列舉
- 後台可設定之快取、圖片壓縮與資源優化參數調整
- 維護前建立可回復備份,並完成一次還原可行性確認
- 主題目錄殘留備份檔先盤點,經客戶書面確認後清理
4. 維護結束後的權限交接
Patchstack 授權與安全外掛管理權限於維護期間由維護方代管。若維護未延續,甲方於維護結束日前提供自有授權或帳號者,於 7 日內完成設定移轉;未提供者,於 7 日內停用維護期間新增之授權與相依規則,並交付停用紀錄。Cloudflare 帳號由甲方持有,維護期間新增或調整之規則將於結束時提供設定清單與交接說明,由甲方續用或調整。
三、按需調整與顧問服務範圍外項目 (需程式碼修正)
下列項目均涉及既有程式碼修改、相容層重寫或資料結構調整,需修改程式碼方可修正,屬開發與重構作業。 因此不屬附件一 A「按需調整服務」與 B「顧問服務」之執行範圍。顧問服務交付內容為問題盤點與改善建議;實際修正需另行確認範圍、時程與驗收標準後安排。
1. 主題審查列出的 25 項問題 (已含二次審查修訂版)
修改位置包含 footer.php、header.php、functions.php、ultimate-member/email/welcome_email.php、woocommerce/single-product.php、woocommerce/emails/*.php、js/main.js。
2. SonarQube 列出的漏洞、Bug、Security Hotspot、Code Smell
逐檔逐行的原始碼修正與重構。
3. WooCommerce 範本升級
single-product.php (1.6.4) 、customer-completed-order.php、customer-on-hold-order.php、orders.php 需依當前 WooCommerce 版本重新比對與更新。
4. HPOS 相容修正
manage_shop_order_posts_custom_column 等 hook 需補上 manage_woocommerce_page_wc-orders_custom_column 相容版本;get_post_meta 呼叫需改為 $order->get_meta()。
5. 長期未更新外掛的替代與遷移
替代方案評估、資料結構遷移、相容性測試。
6. 自訂外掛程式碼修復
SonarQube 指出的外掛層級問題,需修改外掛原始碼。
7. 前台效能程式層調校
LCP、INP、Critical Rendering Path 的優化需修改主題 template、JS 邏輯或資料庫查詢。後台可設定的快取與圖片最佳化已納入第二節第 3 點。
8. 既有客製流程重寫與資料庫層重構
包含結帳流程邏輯改寫、訂單欄位結構調整、批次資料修復腳本等,均屬程式開發範圍。
四、健檢報告索引
完整逐項資料與原始掃描結果請參考健檢報告索引:
- 資安設定:
/security/ - 動態掃描 (未登入 / 已登入) :
/security/zap、/security/zap-auth - 程式碼掃描:
/security/code - 主題架構與審查:
/theme/、/optimize/theme - 外掛清單與已知漏洞:
/security/plugins、/security/wpscan - 效能與主機資源:
/performance/ - WooCommerce 概覽:
/woo/ - SEO 結構與 GSC:
/seo/ - GA4 流量:
/ga4/
