安全

我们如何保护您的财务数据

简述: Bank Statement Parser 在本地处理所有数据,默认脱敏 PII,加固 XML 解析以防御 XXE 攻击,通过 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 提取均通过以下等式验证:期初余额 + 贷方 − 借方 == 期末余额。结果标记为 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