A

Aaron 的部落格

用 Astro + Tailwind 重啟的新基地

約 1 分鐘閱讀

用 AI 開發 WordPress 安全外掛 — Site Add-on Watchdog 開發分享

前陣子開發了一個 WordPress 安全外掛——Site Add-on Watchdog,主要功能是自動監控網站上安裝的外掛有沒有安全漏洞。這個專案比較特別的地方是,全程都是用 AI 輔助開發,從需求分析到程式碼撰寫,幾乎都是跟 AI 協作完成的。

為什麼要做這個外掛

WordPress 的外掛生態系很豐富,但也因此埋了不少資安隱患。很多網站管理者不會主動追蹤外掛的安全性更新,等到被駭了才知道有漏洞。

這個外掛的目的就是自動化這個監控流程。它會定期檢查網站安裝的外掛版本,比對已知的安全漏洞資料庫,如果發現有風險就主動通知管理者。

主要功能

這個外掛包含幾個核心功能:

自動化資安監控

  • 定期掃描網站已安裝的外掛
  • 比對外掛版本與 Changelog 中的安全修補
  • 整合 WPScan API 即時識別 CVE 漏洞

企業級通知系統

  • 支援 Webhooks 串接
  • 可通知到 Slack、Discord、Microsoft Teams
  • 讓運維團隊能即時收到警報

管理後台介面

  • 清楚列出所有外掛的安全狀態
  • 一目瞭然地看到哪些外掛需要更新
  • 提供漏洞詳細資訊和修補建議

AI 輔助開發的體驗

這個專案我全程使用 Claude 和 Google Antigravity IDE 來輔助開發。說實話,這個開發模式跟以前完全不一樣。

需求拆解階段

一開始我只有一個模糊的想法:「我想做一個能監控 WordPress 外掛安全性的工具」。先跟 AI 討論這個需求應該怎麼拆解,它幫我列出了幾個主要模組:

  • 外掛掃描器
  • 漏洞資料庫比對引擎
  • 通知系統
  • 後台管理介面

有了這個架構之後,開發就有方向了。

程式碼撰寫階段

WordPress 外掛開發有一套自己的規範,像是 Hook 機制、設定頁面的寫法、資料庫操作等等。老實說我之前沒有從零開始寫過 WordPress 外掛,很多細節都不熟。

這時候 AI 就很有幫助了。我描述我要實現的功能,它會給我符合 WordPress Plugin Handbook 規範的程式碼。不只是可以動的程式碼,而是符合最佳實踐的寫法。這讓我省去很多查文件的時間。

除錯階段

開發過程中遇到問題,也是直接貼給 AI 看。像是 WordPress 的 cron job 為什麼沒有正常執行、API 回傳的資料格式怎麼解析,這些問題 AI 都能很快給出解答。

技術細節

WPScan API 整合

外掛的核心功能是漏洞偵測,這部分整合了 WPScan API。WPScan 是一個知名的 WordPress 安全掃描工具,他們維護了一個完整的漏洞資料庫。

整合的流程是:先抓取網站上所有已安裝的外掛清單和版本號,然後打 WPScan API 查詢每個外掛是否有已知的 CVE 漏洞。如果有,就記錄下來並觸發通知。

Webhook 通知機制

通知系統設計成 Webhook 的形式,這樣彈性比較大。使用者可以自己設定要通知到哪個平台——Slack、Discord、Teams 都可以,甚至可以串到自己的系統。

Webhook 的好處是不用在外掛裡面實作每個平台的 API,只要發送標準的 HTTP 請求就好。接收端怎麼處理是他們的事。

排程機制

安全掃描不能手動執行,要能夠自動定期跑才有意義。這邊用 WordPress 內建的 WP-Cron 來處理排程。

WP-Cron 有個特性是它不是真正的 cron job,而是在有人訪問網站時才會觸發。這對流量低的網站可能不太準時,但對於安全掃描來說,差幾個小時通常不是大問題。

開發過程的反思

這次用 AI 輔助開發的體驗讓我對開發流程有了新的想法。

AI 能做什麼

AI 的強項是快速產生符合規範的程式碼。像是 WordPress 的 Hook 怎麼寫、設定頁面的 HTML 結構、AJAX 請求的處理方式,這些有固定套路的東西,AI 都能快速給出正確的答案。

另外,AI 對於閱讀和理解文件也很擅長。我只要說「我要用 WPScan API 查詢外掛漏洞」,它就能幫我寫出正確的 API 呼叫方式。

還是需要人來判斷

不過 AI 給的程式碼不能直接複製貼上就用。還是要自己理解它在做什麼,確認邏輯是對的。有時候 AI 會生成看起來很合理但其實有問題的程式碼,這時候就要靠自己的判斷力。

架構的設計也是一樣。AI 可以給建議,但最後的決定還是要自己做。畢竟只有自己最清楚專案的需求和限制。

結語

Site Add-on Watchdog 已經上架到 WordPress 官方外掛庫了,歡迎有需要的人下載使用。有任何問題或建議也歡迎回報。

這次的開發經驗讓我體會到,AI 輔助開發不是取代工程師,而是讓工程師可以更專注在重要的事情上。繁瑣的套路程式碼交給 AI,自己專心思考架構和業務邏輯。


外掛連結:Site Add-on Watchdog