Pentest Human Gate (chạy trước go-live)
Đối tượng: approver phối hợp sysadmin, chạy lại mỗi khi đổi auth/proxy. Kỳ vọng: mọi cách approve "không phải người" đều phải 403.
Ba phát bắn bắt buộc
# 1. Không JWT, chỉ gửi header giả mạo → PHẢI 403
curl -s -o /dev/null -w '%{http_code}\n' -X POST \
http://127.0.0.1:8080/api/tasks/<id>/approve \
-H 'x-forwarded-email: attacker@evil.com' -H 'x-forwarded-role: admin'
# → 403
# 2. Service token (actor 'system') approve → PHẢI 403
# (dùng token thật của bạn, lệnh tương tự, thêm -H "Authorization: Bearer <token>")
# 3. User role viewer/member approve → PHẢI 403
Phát nào không 403 là sự cố bảo mật P0
Dừng nghiệm thu, gọi sysadmin kiểm tra: Cloudflare JWT verify + nginx strip header + server bind loopback. Xem Kiến trúc tổng thể.
Vì sao không có bypass?
- Xác thực 2 lớp ở
POST /api/tasks/:id/approve:actor.typephải là'human', role trên Space>= admin. - Scope
gate:approvecố ý không tồn tại trong scope-registry — không token nào xin được quyền này. - Chi tiết: Vì sao Human Gate không bypass được.