OWASP Top 10 là danh sách 10 rủi ro bảo mật web phổ biến nhất, do Open Web Application Security Project cập nhật định kỳ vài năm một lần — bản 2021 là phiên bản được tham chiếu rộng rãi nhất; bản 2025 tái cấu trúc các nhóm rủi ro (Supply Chain Failures tách thành category riêng).
- Ba rủi ro quan trọng nhất với web/Node.js dev thường là Broken Access Control, Injection, và Authentication Failures. A01: Broken Access Control (lên #1 từ #5) — user truy cập resources không được phép: thiếu authorization checks, IDOR (Insecure Direct Object Reference). A02: Cryptographic Failures — dữ liệu nhạy cảm không được mã hóa, dùng thuật toán yếu (MD5, SHA1 cho password). A03: Injection — SQL, NoSQL, command injection. A04: Insecure Design — thiếu threat modeling, security requirements. A05: Security Misconfiguration — default credentials, verbose errors, unnecessary features enabled. A06: Vulnerable Components — outdated dependencies với known CVEs. A07: Auth Failures — weak passwords, session fixation, no rate limiting trên login. A08: Software Integrity Failures — CI/CD pipeline không secure, unsigned packages. A09: Security Logging Failures — không log security events, không alert. A10: SSRF (Server-Side Request Forgery) — attacker khiến server fetch internal URLs.
- Trong Node.js context: A03 (SQL injection → parameterized queries), A02 (bcrypt/argon2 thay MD5), A01 (middleware authorization), A06 (npm audit + Dependabot), A07 (rate limiting + account lockout).