Bỏ qua, đến nội dung

@digiforce-nc/plugin-request-encryption

Plugin mã hóa query parameters — mã hóa (Base64) tham số query string trước khi gửi HTTP request để ẩn thông tin nhạy cảm khỏi URL, access log, và browser history.

Plugin này làm gì?

URL query string thường chứa thông tin nhạy cảm (filter conditions, IDs, tham số nghiệp vụ) và xuất hiện trong access log, browser history, referrer header. Plugin tự động encode query parameters thành Base64 trước khi gửi (client) và decode khi nhận (server) — hoàn toàn trong suốt, không cần sửa code.

Tính năng chính

#Tính năngMô tả
1Base64 encodingMã hóa query parameters thành chuỗi __encoded__
2Unicode supportHỗ trợ đầy đủ ký tự Unicode (tiếng Việt, CJK...)
3TransparentTự động encode/decode, không cần sửa code
4Fail-safeNếu decode thất bại, request vẫn được xử lý bình thường
5Backward compatibleRequest không có __encoded__ vẫn hoạt động

Lưu ý: Đây là obfuscation (Base64), không phải mã hóa mật mã (AES/RSA). Mục đích chính là ẩn query string, không phải bảo vệ chống tấn công mật mã. Luôn kết hợp với HTTPS.


Cơ chế hoạt động

Client (Axios interceptor)

typescript
// Tự động encode tất cả params
config.params = {
  __encoded__: base64EncodeUnicode(JSON.stringify(params))
};

Server (Koa middleware, trước bodyParser)

qs.parse(querystring) → kiểm tra __encoded__ → base64Decode → JSON.parse → merge vào query

Dependencies

PackageVai trò
@digiforce-nc/serverServer framework — Koa middleware
@digiforce-nc/clientClient framework — Axios interceptor
qsParse và stringify query string

Mục lục chi tiết