Giao diện
@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ăng | Mô tả |
|---|---|---|
| 1 | Base64 encoding | Mã hóa query parameters thành chuỗi __encoded__ |
| 2 | Unicode support | Hỗ trợ đầy đủ ký tự Unicode (tiếng Việt, CJK...) |
| 3 | Transparent | Tự động encode/decode, không cần sửa code |
| 4 | Fail-safe | Nếu decode thất bại, request vẫn được xử lý bình thường |
| 5 | Backward compatible | Request 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 queryDependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework — Koa middleware |
@digiforce-nc/client | Client framework — Axios interceptor |
qs | Parse và stringify query string |