TL;DR: Kontoutdragsparser gör noll nätverksanrop, redigerar PII som standard, hårdnar XML-analys mot XXE-attacker och levereras med SHA-256 hash-låsta beroenden och en CycloneDX SBOM.
Security by Design
Kontoutdragsparser är byggd för att bearbeta känslig finansiell data. Varje designbeslut prioriterar säkerhet, integritet och revisionsbarhet.
Noll nätverksåtkomst
All bearbetning sker lokalt inom din körtid. Biblioteket gör noll API-anrop, noll molnanslutningar och samlar in noll telemetri. XML-tolkare är uttryckligen konfigurerade medno_network=True, resolve_entities=False, ochload_dtd=Falseför att förhindra all utgående åtkomst.
PII-redaktion
Personligt identifierbar information (namn, IBAN, postadresser) redigeras automatiskt i CLI-utdata och streaming-läge. Detta är på som standard.
- CLI: Känsliga fält visas som
***REDACTED*** - Streaming:
parse_streaming(redact_pii=True)(standard) - Export: CSV/JSON/Excel behåller fullständiga data för nedströmsbehandling
- Opt-in: Använd
--show-piiellerredact_pii=Falsenär du behöver oredigerad utdata
XML-säkerhet (XXE-skydd)
Alla användningsområden för XML-tolkninglxmlmed härdade inställningar:
resolve_entities=False-- förhindrar attacker av XML-entitetsexpansion -no_network=True-- blockerar all utgående nätverksåtkomst från parsern -load_dtd=False-- förhindrar DTD-baserade attacker- Avlägsning av namnutrymme före bearbetning - hanterar alla CAMT.053-varianter säkert
ZIP Archive Security
iter_secure_xml_entries()validerar varje ZIP-medlem innan extrahering:
- Entréstorlekstak: 10 MB per post (konfigurerbar)
- Totalt storlekstak: 50 MB totalt okomprimerat (konfigurerbart)
- Kompressionsförhållandegräns: 100:1 standard - upptäcker ZIP-bomber
- Krypterad postavvisning: Krypterade poster hoppas över med en varning
- Ingen diskskrivning: XML-bytes skickas direkt till parsern via
from_bytes()
Förebyggande av vägpassering
Indatavalidering blockerar farliga filsökvägar:
- Nullbyte, kataloggenomgångsmönster (
../), och symboliska länkar avvisas - Verifiering av filtillägg mot förväntade format
- Filstorleksgränser (100 MB standard, konfigurerbar)
Deterministisk utdata
Med samma indatafil producerar parsern byte-identisk utdata varje körning. Ingen slumpmässighet, ingen modellinferens, ingen heuristisk sampling. Detta är avgörande för:
- Reproducerbarhet för granskning: Kör samma fil två gånger och ändra resultatet
- Föreskriftsefterlevnad: Demonstrera konsekvent bearbetning
- CI-verifiering: 467 tester framtvingar determinism med 100 % filialtäckning
Supply Chain Security
- SHA-256 hash-låsta beroenden: Varje paket in
poetry.lockhar verifierat filhashar - CycloneDX SBOM: Varje utgåva inkluderar en mjukvarulista
- GitHub-byggets ursprung: Attestation länkar varje artefakt till dess källförpliktelse
- Signerade commits: Alla commits är SSH-signerade och verifierade i CI
- Verifiering av beroende:
scripts/verify_locked_hashes.pyvaliderar alla hashs lokalt
Verifiera lokalt
python -m pytest # 467 tests, 100% branch coverage
python scripts/verify_locked_hashes.py # SHA-256 hash verification
git log --show-signature -1 # Verify commit signature