關閉選單
Pompelmi:適用於 Node.js 的開源安全文件上傳掃描工具

使用 JavaScript 建置服務的軟體團隊正在增加更多防禦層來應對不受信任的檔案上傳。一個名為 Pompelmi 的開源專案旨在將惡意軟體掃描和策略檢查直接嵌入到 Node.js 應用程式中,防止檔案進入儲存或業務邏輯。Pompelmi 專為 JavaScript 和 TypeScript 環境而構建,並直接在應用程式進程中運行。文件在上傳時會被掃描到記憶體中,使應用程式能夠在請求流程早期做出接受或拒絕的決定。

應用程式代碼中的內聯掃描

Pompelmi 的核心功能是檔案掃描器,開發者可以將其嵌入到上傳處理程序中。傳入的文件會根據一系列檢查進行評估,這些檢查會根據配置的規則將內容標記為可接受、可疑或惡意。

此掃描器無需外部網路呼叫即可運作,這種設計使得掃描決策能夠在應用程式邊界內完成,這對於存在隱私、延遲或監管限制的環境尤其重要。掃描過程中,檔案資料不會離開服務。Pompelmi 旨在處理寫入磁碟或物件儲存之前的檔案緩衝區,這種方法透過阻止不安全內容到達下游系統來降低風險。

文件策略和歸檔檢查

該工具包支援多種策略控制,團隊可以根據自身風險需求進行客製化。開發人員可以強制執行允許的檔案副檔名、最大檔案大小以及伺服器端 MIME 類型驗證。 MIME 檢查會將聲明的內容類型與偵測到的文件簽章進行比較,從而減少對使用者提供的元資料的依賴。

其中一個重點領域是壓縮檔案處理, Pompelmi 會在解壓縮之前檢查壓縮包內容,並限制遞歸深度、檔案總數和壓縮包大小的擴展。這些控制措施旨在降低遭受壓縮包炸彈攻擊和嵌套有效載荷傳播的風險。

策略配置允許團隊定義閾值和拒絕行為。掃描結果可以記錄或呈現給應用程式邏輯,而無需儲存上傳的檔案。

可插拔掃描邏輯

Pompelmi 支援多種掃描策略,這些策略可以在單一工作流程中組合使用。預設檢查會尋找風險模式和結構性指標。該工具包還提供了用於添加自訂掃描器的介面。

透過可插拔引擎模型,可以啟用可選的基於簽名的掃描功能。這使得開發人員能夠整合符合自身偵測需求的簽章集或掃描邏輯。

框架整合和中間件

為了簡化部署,Pompelmi 為常見的 Node.js Web 框架提供了適配器。它還提供了適用於 Express 和 Koa 的中間件包,允許在請求處理過程中攔截和掃描文件上傳。此外,該專案還支援與 Next.js 路由模式的整合。

在典型的部署中,開發人員會將掃描器與框架適配器一起安裝。適配器會對上傳路由套用掃描邏輯,並根據掃描結果控制請求是否繼續進行。被拒絕的上傳可以透過標準錯誤處理路徑進行處理。

除了運行時使用外,Pompelmi 還可應用於建置和管線工作流程。此專案提供的 GitHub Action 允許團隊在持續整合期間掃描工件或程式碼庫,這有助於在部署前及早發現不安全內容。

資料來源:https://www.helpnetsecurity.com/2026/02/02/pompelmi-open-source-secure-file-upload-scanning-node-js/
 
探討其針對 Node.js 環境提供的即時記憶體檔案掃描技術,分析如何透過內置原則引擎與插拔式掃描邏輯,在不增加網路延遲的前提下,有效攔截惡意檔案、防範壓縮包炸彈及 MIME 類型偽造。