নকশায় নিরাপত্তা
ব্যাংক স্টেটমেন্ট পার্সার সংবেদনশীল আর্থিক ডেটা প্রক্রিয়াকরণের জন্য তৈরি। প্রতিটি নকশা সিদ্ধান্ত নিরাপত্তা, গোপনীয়তা এবং নিরীক্ষণযোগ্যতাকে অগ্রাধিকার দেয়।
শূন্য নেটওয়ার্ক অ্যাক্সেস
সমস্ত প্রক্রিয়াকরণ আপনার রানটাইমের মধ্যে স্থানীয়ভাবে ঘটে। লাইব্রেরি শূন্য API কল, শূন্য ক্লাউড সংযোগ এবং শূন্য টেলিমেট্রি সংগ্রহ করে। XML পার্সারগুলি স্পষ্টভাবে no_network=True, resolve_entities=False এবং load_dtd=False দিয়ে কনফিগার করা হয়েছে যাতে কোনো বহির্গামী অ্যাক্সেস প্রতিরোধ করা যায়।
PII রিডাকশন
ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য (নাম, IBAN, ডাক ঠিকানা) CLI আউটপুট এবং স্ট্রিমিং মোডে স্বয়ংক্রিয়ভাবে রিডাক্ট করা হয়। এটি ডিফল্টভাবে চালু।
- CLI: সংবেদনশীল ক্ষেত্রগুলি
***REDACTED***হিসেবে দেখায় - স্ট্রিমিং:
parse_streaming(redact_pii=True)(ডিফল্ট) - এক্সপোর্ট: CSV/JSON/Excel ডাউনস্ট্রিম প্রক্রিয়াকরণের জন্য সম্পূর্ণ ডেটা ধরে রাখে
- অপ্ট-ইন: আনরিডাক্টেড আউটপুট প্রয়োজন হলে
--show-piiবাredact_pii=Falseব্যবহার করুন
XML নিরাপত্তা (XXE সুরক্ষা)
সমস্ত XML পার্সিং হার্ডেনড সেটিংস সহ lxml ব্যবহার করে:
resolve_entities=False-- XML এন্টিটি এক্সপ্যানশন আক্রমণ প্রতিরোধ করেno_network=True-- পার্সার থেকে সমস্ত বহির্গামী নেটওয়ার্ক অ্যাক্সেস ব্লক করেload_dtd=False-- DTD-ভিত্তিক আক্রমণ প্রতিরোধ করে- প্রক্রিয়াকরণের আগে নেমস্পেস স্ট্রিপিং -- যেকোনো CAMT.053 ভ্যারিয়েন্ট নিরাপদে পরিচালনা করে
ZIP আর্কাইভ নিরাপত্তা
iter_secure_xml_entries() এক্সট্রাকশনের আগে প্রতিটি ZIP সদস্য যাচাই করে:
- এন্ট্রি সাইজ ক্যাপ: প্রতি এন্ট্রি ১০ MB (কনফিগারযোগ্য)
- মোট সাইজ ক্যাপ: মোট ৫০ MB আনকম্প্রেসড (কনফিগারযোগ্য)
- কম্প্রেশন রেশিও সীমা: ১০০:১ ডিফল্ট -- ZIP বম্ব সনাক্ত করে
- এনক্রিপ্টেড এন্ট্রি প্রত্যাখ্যান: এনক্রিপ্টেড এন্ট্রি সতর্কতা সহ বাদ দেওয়া হয়
- কোনো ডিস্ক রাইট নেই: XML বাইট সরাসরি
from_bytes()-এর মাধ্যমে পার্সারে যায়
পাথ ট্রাভার্সাল প্রতিরোধ
ইনপুট ভ্যালিডেশন বিপজ্জনক ফাইল পাথ ব্লক করে:
- নাল বাইট, ডিরেক্টরি ট্রাভার্সাল প্যাটার্ন (
../) এবং সিমলিংক প্রত্যাখ্যান করা হয় - প্রত্যাশিত ফরম্যাটের বিরুদ্ধে ফাইল এক্সটেনশন যাচাই
- ফাইল সাইজ সীমা (১০০ MB ডিফল্ট, কনফিগারযোগ্য)
ডিটারমিনিস্টিক আউটপুট
একই ইনপুট ফাইল দেওয়া হলে, পার্সার প্রতিবার বাইট-অভিন্ন আউটপুট তৈরি করে। কোনো র্যান্ডমনেস নেই, কোনো মডেল ইনফারেন্স নেই, কোনো হিউরিস্টিক স্যাম্পলিং নেই। এটি গুরুত্বপূর্ণ:
- অডিট পুনরুৎপাদনযোগ্যতা: একই ফাইল দুবার চালান এবং আউটপুট diff করুন
- নিয়ন্ত্রক সম্মতি: সামঞ্জস্যপূর্ণ প্রক্রিয়াকরণ প্রদর্শন করুন
- CI যাচাই: ৪৬৭টি টেস্ট ১০০% ব্রাঞ্চ কভারেজ সহ ডিটারমিনিজম নিশ্চিত করে
সাপ্লাই চেইন নিরাপত্তা
- SHA-256 হ্যাশ-লকড ডিপেন্ডেন্সি:
poetry.lock-এ প্রতিটি প্যাকেজের যাচাইকৃত ফাইল হ্যাশ রয়েছে - CycloneDX SBOM: প্রতিটি রিলিজে একটি সফটওয়্যার বিল অফ ম্যাটেরিয়ালস অন্তর্ভুক্ত
- GitHub বিল্ড প্রোভেন্যান্স: অ্যাটেস্টেশন প্রতিটি আর্টিফ্যাক্টকে তার সোর্স কমিটের সাথে লিঙ্ক করে
- সাইনড কমিট: সমস্ত কমিট SSH-সাইনড এবং CI-তে যাচাই করা হয়
- ডিপেন্ডেন্সি যাচাই:
scripts/verify_locked_hashes.pyস্থানীয়ভাবে সমস্ত হ্যাশ যাচাই করে
স্থানীয়ভাবে যাচাই করুন
python -m pytest # ৪৬৭টি টেস্ট, ১০০% ব্রাঞ্চ কভারেজ
python scripts/verify_locked_hashes.py # SHA-256 হ্যাশ যাচাই
git log --show-signature -1 # কমিট স্বাক্ষর যাচাই