Bảo mật theo thiết kế
Trình phân tích báo cáo ngân hàng được xây dựng để xử lý dữ liệu tài chính nhạy cảm. Mọi quyết định thiết kế đều ưu tiên bảo mật, quyền riêng tư và khả năng kiểm toán.
Không có quyền truy cập mạng
Tất cả quá trình xử lý diễn ra cục bộ trong thời gian chạy của bạn. Thư viện không thực hiện lệnh gọi API, không kết nối đám mây và không thu thập dữ liệu đo từ xa. Trình phân tích cú pháp XML được cấu hình rõ ràng vớino_network=True, resolve_entities=False, Vàload_dtd=Falseđể ngăn chặn mọi truy cập ra bên ngoài.
Biên tập PII
Thông tin nhận dạng cá nhân (tên, IBAN, địa chỉ gửi thư) được tự động sắp xếp lại ở chế độ phát trực tuyến và đầu ra CLI. Tính năng này được bật theo mặc định.
- CLI: Các trường nhạy cảm hiển thị dưới dạng
***REDACTED*** - Truyền phát:
parse_streaming(redact_pii=True)(mặc định) - Xuất: CSV/JSON/Excel giữ lại toàn bộ dữ liệu để xử lý tiếp theo
- Chọn tham gia: Sử dụng
--show-piihoặcredact_pii=Falsekhi bạn cần đầu ra chưa được chỉnh sửa
Bảo mật XML (Bảo vệ XXE)
Tất cả việc sử dụng phân tích cú pháp XMLlxmlvới cài đặt cứng:
resolve_entities=False-- ngăn chặn các cuộc tấn công mở rộng thực thể XML -no_network=True-- chặn tất cả quyền truy cập mạng gửi đi từ trình phân tích cú pháp -load_dtd=False-- ngăn chặn các cuộc tấn công dựa trên DTD- Loại bỏ không gian tên trước khi xử lý -- xử lý mọi biến thể CAMT.053 một cách an toàn
Bảo mật kho lưu trữ ZIP
iter_secure_xml_entries()xác thực mọi thành viên ZIP trước khi trích xuất:
- Giới hạn kích thước mục nhập: 10 MB mỗi mục nhập (có thể định cấu hình)
- Giới hạn tổng kích thước: Tổng dung lượng không nén là 50 MB (có thể định cấu hình)
- Giới hạn tỷ lệ nén: mặc định 100:1 -- phát hiện bom ZIP
- Từ chối mục nhập được mã hóa: Các mục nhập được mã hóa bị bỏ qua kèm theo cảnh báo
- Không ghi vào đĩa: Các byte XML chuyển trực tiếp tới trình phân tích cú pháp thông qua
from_bytes()
Ngăn chặn truyền tải đường dẫn
Xác thực đầu vào chặn các đường dẫn tệp nguy hiểm:
- Byte rỗng, mẫu truyền tải thư mục (
../) và các liên kết tượng trưng bị từ chối - Xác thực phần mở rộng tệp theo các định dạng mong đợi
- Giới hạn kích thước tệp (mặc định 100 MB, có thể định cấu hình)
Đầu ra xác định
Với cùng một tệp đầu vào, trình phân tích cú pháp tạo ra đầu ra giống byte mỗi lần chạy. Không có sự ngẫu nhiên, không có suy luận mô hình, không có lấy mẫu heuristic. Điều này rất quan trọng đối với:
- Khả năng tái tạo kiểm tra: Chạy cùng một tệp hai lần và phân biệt đầu ra
- Tuân thủ quy định: Thể hiện quy trình xử lý nhất quán
- Xác minh CI: 467 bài kiểm tra thực thi tính xác định với phạm vi bao phủ 100% chi nhánh
An ninh chuỗi cung ứng
- Các phần phụ thuộc được khóa băm SHA-256: Mọi gói trong
poetry.lockđã xác minh băm tập tin - CycloneDX SBOM: Mỗi bản phát hành đều bao gồm Danh mục vật liệu phần mềm
- Nguồn gốc bản dựng GitHub: Chứng thực liên kết từng tạo phẩm với cam kết nguồn của nó
- Cam kết đã ký: Tất cả các cam kết đều được ký và xác minh SSH trong CI
- Xác minh người phụ thuộc:
scripts/verify_locked_hashes.pyxác thực tất cả các giá trị băm cục bộ
Xác minh cục bộ
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