الأمان بالتصميم
صُمم محلل كشوف الحسابات البنكية لمعالجة البيانات المالية الحساسة. كل قرار تصميمي يُعطي الأولوية للأمان والخصوصية وقابلية التدقيق.
عدم الوصول إلى الشبكة
تتم جميع عمليات المعالجة محلياً ضمن بيئة التشغيل الخاصة بك. لا تُجري المكتبة أي اتصالات API، ولا أي اتصالات سحابية، ولا تجمع أي بيانات قياس عن بُعد. تُهيأ محللات XML صراحةً مع no_network=True وresolve_entities=False وload_dtd=False لمنع أي وصول خارجي.
إخفاء PII
يتم إخفاء معلومات التعريف الشخصية (الأسماء، أرقام IBAN، العناوين البريدية) تلقائياً في مخرجات CLI ووضع streaming. هذه الميزة مفعلة افتراضياً.
- CLI: تظهر الحقول الحساسة كـ
***REDACTED*** - streaming:
parse_streaming(redact_pii=True)(افتراضي) - التصدير: يحتفظ CSV/JSON/Excel بالبيانات الكاملة للمعالجة اللاحقة
- اختياري: استخدم
--show-piiأوredact_pii=Falseعندما تحتاج مخرجات غير مخفية
أمان XML (حماية XXE)
يستخدم جميع تحليل XML مكتبة lxml مع إعدادات مُقواة:
resolve_entities=False-- يمنع هجمات توسيع كيانات XMLno_network=True-- يحظر جميع الوصول الخارجي للشبكة من المحللload_dtd=False-- يمنع الهجمات القائمة على DTD- إزالة مساحات الأسماء قبل المعالجة -- يتعامل مع أي متغير من CAMT.053 بأمان
أمان أرشيفات ZIP
تتحقق iter_secure_xml_entries() من كل عنصر في ZIP قبل الاستخراج:
- حد حجم العنصر: 10 ميجابايت لكل عنصر (قابل للتهيئة)
- حد الحجم الإجمالي: 50 ميجابايت إجمالي غير مضغوط (قابل للتهيئة)
- حد نسبة الضغط: 100:1 افتراضياً -- يكشف ZIP bombs
- رفض العناصر المشفرة: يتم تخطي العناصر المشفرة مع تحذير
- بدون كتابة على القرص: تمرر بايتات XML مباشرة إلى المحلل عبر
from_bytes()
منع اجتياز المسارات
يحظر التحقق من المدخلات مسارات الملفات الخطيرة:
- يتم رفض البايتات الفارغة وأنماط اجتياز الأدلة (
../) والروابط الرمزية - التحقق من امتداد الملف مقابل التنسيقات المتوقعة
- حدود حجم الملف (100 ميجابايت افتراضياً، قابل للتهيئة)
مخرجات حتمية
بالنظر إلى نفس ملف الإدخال، ينتج المحلل مخرجات متطابقة بايت بايت في كل تشغيل. لا عشوائية، ولا استدلال نموذجي، ولا أخذ عينات إرشادي. هذا ضروري من أجل:
- قابلية إعادة إنتاج التدقيق: شغّل نفس الملف مرتين وقارن المخرجات
- الامتثال التنظيمي: إثبات اتساق المعالجة
- التحقق في CI: 467 اختباراً يفرضون الحتمية بتغطية فروع 100%
أمان سلسلة التوريد
- تبعيات مقفلة بتجزئة SHA-256: كل حزمة في
poetry.lockتملك تجزئات ملفات موثقة - SBOM بتنسيق CycloneDX: كل إصدار يتضمن قائمة مواد البرمجيات
- مصدر بناء GitHub: يربط التصديق كل مُنتَج ببناء الكود المصدري الخاص به
- التزامات موقعة: جميع الالتزامات موقعة بـ SSH ومُتحقق منها في CI
- التحقق من التبعيات: يتحقق
scripts/verify_locked_hashes.pyمن جميع التجزئات محلياً
التحقق محلياً
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