Part 05 · Readiness · 5.4
Sai lầm và checklist API Security
Dùng trang này để kiểm tra khả năng giải thích semantics, threat model, operational evidence và recovery—not chỉ nhớ tên status code hay framework.
Red flags
POST/200 cho mọi operation và error; client phải parse
success=false.JWT tự động an toàn, stateless và revocable chỉ vì nó có chữ ký.
CORS là authentication hoặc bảo vệ API khỏi curl/server-to-server.
HTTPS ở edge nghĩa toàn đường đi proxy→backend đã an toàn.
Retry mọi lỗi để tăng reliability, kể cả unknown payment outcome.
Ẩn/đổi ID là đủ authorization; role endpoint thay thế object ownership.
Lỗi triển khai thường gặp
- Không có idempotency cho financial side effect hoặc lưu key không atomic.
- Trust role/object ID/tenant từ client; query không scope principal.
- Log token, cookie, password, PII hoặc stack trace/SQL.
- Wildcard CORS với credential hoặc phản chiếu arbitrary Origin.
- Không giới hạn payload/page/query/concurrency/report cost.
- SSRF fetch URL tùy ý, không chặn redirect/private range/DNS rebinding.
- Timeout từng hop vượt overall deadline; retry nhiều tầng nhân tải.
- Secret trong Git/image, key rotation không overlap/revoke, inventory/version cũ bị quên.
Readiness checklist
- Tôi hiểu HTTP safe/idempotent/cache semantics và status/error contract.
- Tôi thiết kế validation, Problem Details, ETag và cursor pagination đúng trade-off.
- Tôi trace request qua DNS/TCP/TLS/proxy/pool bằng percentile và deadline.
- Tôi phân biệt session/JWT/OAuth/OIDC/access token/ID token.
- Tôi hiểu PKCE, issuer/audience/signature validation, rotation và revocation.
- Tôi phân biệt CORS, CSRF, XSS, CSP và cookie/storage threats.
- Tôi kiểm tra object/function/property authorization và SSRF.
- Tôi thiết kế rate limit theo cost/principal/tenant, timeout/retry/bulkhead.
- Tôi quản lý secret/key/certificate, audit log redaction và supply chain.
- Tôi có incident runbook gồm detect, contain, rotate/revoke, recover và evidence.
- Tôi có thể giải thích 34/43 câu hỏi bằng English framing có failure/control/trade-off.
- Tôi hoàn thành ít nhất 7/9 practice labs và cả 3 execution labs với evidence.
- Tôi có regression test cho BOLA, idempotency, SSRF, CORS/CSRF/XSS và retry storm.
- Tôi biết khi nào fail-open/fail-closed và nêu blast radius.
- Tôi inventory API/version/owner và có deprecation/retirement evidence.
- Tôi không dùng “framework default” thay cho threat model hoặc proof.
Pass gate: đạt checklist chưa đủ nếu không giải thích được một incident timeline và cho reviewer tái chạy ít nhất một negative execution lab trong môi trường cô lập.