Skip to content
此頁面由 AI 翻譯,內容可能有疏漏。歡迎到 GitHub 協助改進。

WAF 防火牆 ​

基於 Coraza 與 OWASP CRS v4 的 Web 應用程式防火牆,可掛接到 Web 服務 的站台。

能力 ​

  • 內建 OWASP CRS v4 規則集,可依規則檔案啟用;
  • 支援自訂 SecLang 規則;
  • 攔截模式與僅偵測模式;
  • 請求內容檢查上限可調,超過上限時拒絕請求或只檢查前段;可依路徑略過請求內容檢查;
  • WebDAV 相容模式:放行網盤、WebDAV 用到的方法、請求標頭與任意上傳內容類型;
  • 多個實例,站台視需要引用。

使用建議 ​

  1. 新站台先使用「僅偵測」,觀察一段時間的日誌,確認沒有誤判;
  2. 針對誤判調整規則檔案或新增自訂例外;
  3. 再切換為「攔截」。

上傳大型檔案的站台 ​

WAF 預設只檢查不超過 12.5 MB 的請求內容,更大的請求會被拒絕(413),網盤、WebDAV、檔案管理這類站台因此無法上傳大型檔案。在實例的「請求內容檢查」中可以調整:

  • 檢查上限:0 表示預設的 12.5 MB,最大 1024 MB;
  • 超過上限時:「拒絕請求」與先前一致;「只檢查前段」只檢查不超過上限的部分,其餘內容原樣轉發給後端,適合上傳大型檔案的站台;
  • 相容 WebDAV 與上傳:OWASP CRS 預設只允許 GET、HEAD、POST、OPTIONS,並攔截 Lock-Token、If、Content-Range 請求標頭與白名單以外的內容類型,WebDAV 用戶端因此無法列出目錄、上傳和加鎖。開啟後放行 PUT、DELETE、PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK、UNLOCK 等方法與這些請求標頭,不再限制上傳的內容類型;PUT 與 application/octet-stream 的請求內容是檔案內容,不再按表單參數檢查。注入、路徑穿越等攻擊檢查照常生效;
  • 略過請求內容的路徑:每行一個路徑前綴(如 /api/upload、/remote.php/dav/),符合的請求不檢查請求內容,請求標頭、URL 與參數仍照常檢查。

建議為網盤、WebDAV 這類站台單獨建立一個實例:開啟「相容 WebDAV 與上傳」並選擇「只檢查前段」,必要時把上傳介面加入略過路徑,其他站台繼續使用預設設定。

curl、rclone 等用戶端上傳較大的內容時會帶 Expect: 100-continue 請求標頭,CRS 4 預設會攔截它。Gately 的所有實例都放行該請求標頭(由 Gately 自行處理 100-continue),不需要額外設定。

驗證 ​

WAF 使用真實攻擊載荷測試,涵蓋路徑穿越等攻擊的攔截。

以 Apache-2.0 授權條款開源發布。