Chuyển tới nội dung chính
Phiên bản: 1.0

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.type phải là 'human', role trên Space >= admin.
  • Scope gate:approve cố ý 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.