10 lỗi bảo mật API phổ biến và cách phòng tránh
API security là một trong những điểm yếu phổ biến nhất mà chúng tôi phát hiện khi thực hiện penetration testing cho khách hàng. Không phải vì developer không biết về bảo mật, mà vì áp lực deadline khiến security thường bị để cuối cùng và sau đó bị bỏ quên. Bài viết này tổng hợp 10 lỗi phổ biến nhất từ kinh nghiệm pentest thực tế, kèm code example và cách fix.
Lỗi #1: Thiếu authentication và authorization phân biệt. Nhiều developer nhầm lẫn giữa authentication (bạn là ai?) và authorization (bạn được làm gì?). API kiểm tra JWT token hợp lệ nhưng không kiểm tra user có quyền truy cập resource đó không — dẫn đến IDOR (Insecure Direct Object Reference). Fix: luôn kiểm tra cả user identity và resource ownership. Lỗi #2: Để lộ thông tin nhạy cảm trong response. API trả về toàn bộ object database bao gồm password hash, internal ID, metadata nhạy cảm. Fix: dùng DTO (Data Transfer Object) để filter fields trước khi trả về. Lỗi #3: Rate limiting không đủ mạnh — cho phép brute force password, enumeration user hoặc DDoS application layer.
Lỗi #4: SQL Injection và NoSQL Injection vẫn còn xuất hiện trong 2024 — thường do dùng string concatenation thay vì parameterized query. Lỗi #5: Thiếu input validation — không validate type, length, format và range của input dẫn đến nhiều loại injection và unexpected behavior. Lỗi #6: Sensitive data trong URL và log — access token, password, PII trong query string bị lưu vào web server log và browser history. Lỗi #7: CORS được cấu hình quá thoáng với `Access-Control-Allow-Origin: *` cho API yêu cầu authentication. Lỗi #8: Không có API versioning khiến breaking change ảnh hưởng tất cả client. Lỗi #9: JWT không được validate đúng cách — không kiểm tra signature algorithm, expiry hoặc issuer. Lỗi #10: Missing security headers như HSTS, X-Content-Type-Options, X-Frame-Options.
Để cải thiện bảo mật API một cách hệ thống, chúng tôi khuyến nghị: tích hợp OWASP API Security Top 10 vào security checklist của mỗi sprint; dùng API gateway (Kong, AWS API Gateway) để xử lý authentication, rate limiting và logging tập trung; thực hiện automated security testing với OWASP ZAP hoặc Nuclei trong CI/CD pipeline; và pentest toàn diện ít nhất mỗi 6 tháng hoặc sau mỗi major release. Bảo mật không phải là đích đến mà là hành trình liên tục.
Tags:
Tác giả
Nguyễn Văn An
CTO · ANT Solutions & Services
Kỹ sư công nghệ với hơn 8 năm kinh nghiệm xây dựng hệ thống AI và phần mềm doanh nghiệp. Chia sẻ kiến thức kỹ thuật và bài học thực tế từ các dự án production.
Có câu hỏi về chủ đề này?
Đội ngũ kỹ sư ANT Solutions sẵn sàng thảo luận và tư vấn cho dự án cụ thể của bạn.