নিরাপত্তা

কিভাবে আমরা আপনার আর্থিক ডেটা রক্ষা করি

TL;DR: Bank Statement Parser সমস্ত ডেটা স্থানীয়ভাবে প্রক্রিয়া করে, ডিফল্টরূপে PII রিডাক্ট করে, XXE আক্রমণের বিরুদ্ধে XML পার্সিং শক্তিশালী করে, Ollama-র মাধ্যমে স্থানীয়ভাবে LLM চালায়, এবং SHA-256 hash-locked ডিপেন্ডেন্সি ও CycloneDX SBOM সহ আসে।

ডিজাইন অনুসারে নিরাপত্তা

Bank Statement Parser সংবেদনশীল আর্থিক ডেটা প্রক্রিয়াকরণের জন্য তৈরি। প্রতিটি ডিজাইন সিদ্ধান্ত নিরাপত্তা, গোপনীয়তা এবং অডিটযোগ্যতাকে অগ্রাধিকার দেয়।

শূন্য Cloud নির্ভরতা

সমস্ত প্রক্রিয়াকরণ আপনার runtime-এর মধ্যে স্থানীয়ভাবে ঘটে। নির্ধারক পার্সার শূন্য নেটওয়ার্ক কল করে। Hybrid PDF pipeline স্থানীয় LLM inference-এর জন্য Ollama ব্যবহার করে — কোনো ডেটা cloud API-তে পাঠানো হয় না। XML পার্সার স্পষ্টভাবে no_network=True, resolve_entities=False, এবং load_dtd=False দিয়ে কনফিগার করা যা যেকোনো আউটবাউন্ড অ্যাক্সেস প্রতিরোধ করে।

PII রিডাকশন

ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য (নাম, IBAN, ডাক ঠিকানা) CLI আউটপুট ও streaming মোডে স্বয়ংক্রিয়ভাবে রিডাক্ট হয়। এটি ডিফল্টরূপে চালু।

XML নিরাপত্তা (XXE সুরক্ষা)

সমস্ত XML পার্সিং শক্তিশালী সেটিংস সহ lxml ব্যবহার করে:

ZIP আর্কাইভ নিরাপত্তা

iter_secure_xml_entries() extraction-এর আগে প্রতিটি ZIP member যাচাই করে:

Path Traversal প্রতিরোধ

Input validation বিপজ্জনক ফাইল path ব্লক করে:

Balance Verification (Golden Rule)

প্রতিটি PDF extraction এই সমীকরণ দিয়ে যাচাই করা হয়: opening balance + credits − debits == closing balance। ফলাফল VERIFIED, DISCREPANCY, বা FAILED হিসেবে ট্যাগ করা হয়। অসঙ্গতি --type review দিয়ে ইন্টারেক্টিভভাবে পর্যালোচনা করা যায়।

নির্ধারক আউটপুট

স্ট্রাকচার্ড ফর্ম্যাটের (CAMT, PAIN.001, CSV, OFX, QFX, MT940) জন্য, একই ইনপুট ফাইল দিলে পার্সার প্রতিটি রানে বাইট-অভিন্ন আউটপুট তৈরি করে। কোনো randomness, কোনো model inference, কোনো heuristic sampling নেই। এটি গুরুত্বপূর্ণ:

Supply Chain Security

স্থানীয়ভাবে যাচাই করুন

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