安全

我們如何保護您的財務數據

TL;DR: Bank Statement Parser 在本機處理所有資料,預設遮蔽 PII,針對 XXE 攻擊強化 XML 解析,透過 Ollama 在本機執行 LLM,並附帶 SHA-256 雜湊鎖定相依性及 CycloneDX SBOM。

安全設計

Bank Statement Parser 專為處理敏感財務資料而建構。每個設計決策都優先考慮安全性、隱私性和可稽核性。

零雲端依賴

所有處理在本機執行時期內完成。確定性解析器零網路呼叫。混合 PDF 管線使用 Ollama 進行本機 LLM 推論——不會將資料傳送至雲端 API。XML 解析器明確配置為 no_network=Trueresolve_entities=Falseload_dtd=False,以防止任何對外存取。

PII 遮蔽

個人識別資訊(姓名、IBAN、郵政地址)在 CLI 輸出和串流模式下自動遮蔽。此功能預設啟用。

XML 安全性(XXE 保護)

所有 XML 解析使用 lxml 搭配強化設定:

ZIP 檔案安全

iter_secure_xml_entries() 在擷取前驗證每個 ZIP 成員:

路徑遍歷防護

輸入驗證阻擋危險檔案路徑:

餘額驗證(黃金法則)

每次 PDF 擷取都透過以下公式驗證:opening balance + credits − debits == closing balance。結果標記為 VERIFIED、DISCREPANCY 或 FAILED。差異可透過 --type review 互動式審核。

確定性輸出

對於結構化格式(CAMT、PAIN.001、CSV、OFX、QFX、MT940),給定相同的輸入檔案,解析器每次執行都產生位元組完全一致的輸出。無隨機性、無模型推論、無啟發式取樣。這對以下方面至關重要:

供應鏈安全

本機驗證

python -m pytest                          # 718 tests, 100% branch coverage
python scripts/verify_locked_hashes.py    # SHA-256 hash verification
git log --show-signature -1               # Verify commit signature