Bỏ qua, đến nội dung

@digiforce-nc/plugin-ip-restriction

Plugin giới hạn truy cập theo IP — cho phép hoặc chặn truy cập dựa trên địa chỉ IP của client, bảo vệ hệ thống khỏi truy cập trái phép.

Plugin này làm gì?

Trong môi trường doanh nghiệp, không phải mọi IP đều được phép truy cập hệ thống. Plugin này cung cấp whitelist (chỉ cho phép IP trong danh sách) và blacklist (chặn IP cụ thể). Middleware kiểm tra IP của mọi request trước khi xử lý.

Cơ chế hoạt động

Tính năng chính

#Tính năngMô tả
1Whitelist modeChỉ cho phép IP trong danh sách trắng
2Blacklist modeChặn IP trong danh sách đen
3CIDR supportHỗ trợ dải IP (VD: 10.0.0.0/24)
4IPv6Hỗ trợ cả IPv4 và IPv6
5Proxy-awareĐọc IP thật từ X-Forwarded-For khi qua reverse proxy
6Per-role rulesGiới hạn IP khác nhau cho từng role

API endpoints

EndpointMô tả
ipRestriction:listDanh sách rule IP hiện tại
ipRestriction:createThêm rule mới (whitelist/blacklist)
ipRestriction:updateCập nhật rule
ipRestriction:deleteXóa rule
ipRestriction:configCấu hình chế độ (whitelist/blacklist)

Database

BảngMô tả
ipRulesDanh sách rule IP (address/CIDR, type, roleName)
ipRestrictionConfigCấu hình mode (whitelist/blacklist), enabled

Thành phần client

Thành phầnMô tả
IPRuleListDanh sách rule IP với thêm/sửa/xóa
IPRuleFormForm nhập IP hoặc CIDR range
IPModeSwitchChuyển đổi giữa whitelist và blacklist mode
CurrentIPDisplayHiển thị IP hiện tại của admin (tránh tự lock)

Dependencies

PackageVai trò
@digiforce-nc/serverServer framework — middleware
@digiforce-nc/databaseDatabase ORM
@digiforce-nc/clientClient UI framework
ip-range-checkKiểm tra IP thuộc CIDR range

Lưu ý triển khai

  • Khi bật whitelist mode, luôn thêm IP admin trước để tránh tự lock
  • Nếu qua reverse proxy (nginx), cần cấu hình trusted proxy để đọc IP thật
  • Rule thay đổi có hiệu lực ngay lập tức (không cần restart)

Mục lục chi tiết