Tasarımdan Gelen Güvenlik
Banka Ekstresi Ayrıştırıcısı, hassas finansal verileri işlemek için tasarlanmıştır. Her tasarım kararında güvenliğe, gizliliğe ve denetlenebilirliğe öncelik verilir.
Sıfır Ağ Erişimi
Tüm işlemler çalışma zamanınız içerisinde yerel olarak gerçekleşir. Kitaplık sıfır API çağrısı, sıfır bulut bağlantısı yapar ve sıfır telemetri toplar. XML ayrıştırıcıları açıkça yapılandırılmıştırno_network=True, resolve_entities=False, Veload_dtd=Falseherhangi bir giden erişimi önlemek için.
Kişisel Bilgilerin Düzenlenmesi
Kişisel olarak tanımlanabilir bilgiler (isimler, IBAN'lar, posta adresleri), CLI çıkışı ve akış modunda otomatik olarak çıkarılır. Bu, varsayılan olarak açıktır.
- CLI: Hassas alanlar şu şekilde gösterilir:
***REDACTED*** - Akış:
parse_streaming(redact_pii=True)(varsayılan) - Dışa aktarmalar: CSV/JSON/Excel, sonraki işlemler için tüm verileri korur
- Kabul et: Kullan
--show-piiveyaredact_pii=FalseDüzenlenmemiş çıktıya ihtiyacınız olduğunda
XML Güvenliği (XXE Koruması)
Tüm XML ayrıştırma kullanımlarılxmlgüçlendirilmiş ayarlarla:
resolve_entities=False-- XML varlık genişletme saldırılarını önler -no_network=True-- ayrıştırıcıdan gelen tüm giden ağ erişimini engeller -load_dtd=False-- DTD tabanlı saldırıları önler- İşlemeden önce ad alanı sıyırma - herhangi bir CAMT.053 varyantını güvenli bir şekilde işler
ZIP Arşiv Güvenliği
iter_secure_xml_entries()çıkarmadan önce her ZIP üyesini doğrular:
- Giriş boyutu sınırı: Giriş başına 10 MB (yapılandırılabilir)
- Toplam boyut sınırı: Toplam sıkıştırılmamış 50 MB (yapılandırılabilir)
- Sıkıştırma oranı sınırı: 100:1 varsayılan -- ZIP bombalarını algılar
- Şifreli giriş reddi: Şifreli girişler bir uyarıyla atlanır
- Disk yazma yok: XML baytları doğrudan ayrıştırıcıya aktarılır.
from_bytes()
Yol Geçişini Önleme
Giriş doğrulama tehlikeli dosya yollarını engeller:
- Boş baytlar, dizin geçiş modelleri (
../) ve sembolik bağlantılar reddedilir - Beklenen formatlara göre dosya uzantısı doğrulaması
- Dosya boyutu sınırları (varsayılan 100 MB, yapılandırılabilir)
Deterministik Çıktı
Aynı giriş dosyası göz önüne alındığında, ayrıştırıcı her çalıştırmada baytla aynı çıktıyı üretir. Rastgelelik yok, model çıkarımı yok, buluşsal örnekleme yok. Bu aşağıdakiler için kritiktir:
- Denetim tekrarlanabilirliği: Aynı dosyayı iki kez çalıştırın ve çıktıyı farklılaştırın
- Yasal uyumluluk: Tutarlı bir işlem sergileyin
- CI doğrulaması: 467 test, %100 branş kapsamıyla determinizmi güçlendiriyor
Tedarik Zinciri Güvenliği
- SHA-256 karma kilitli bağımlılıklar: Her paket
poetry.lockdoğrulanmış dosya karmaları var - CycloneDX SBOM: Her sürüm bir Yazılım Malzeme Listesi içerir
- GitHub derleme kaynağı: Onaylama her yapıyı kaynak taahhüdüne bağlar
- İmzalı taahhütler: Tüm taahhütler SSH imzalıdır ve CI'da doğrulanmıştır
- Bağımlılık doğrulaması:
scripts/verify_locked_hashes.pytüm karmaları yerel olarak doğrular
Yerel Olarak Doğrula
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