Trung BìnhNode.js iconNode.js

Các lỗ hổng bảo mật phổ biến trong Node.js API và cách phòng tránh?

  • SQL injection (OWASP A03): db.query('SELECT * FROM users WHERE id = ' + req.params.id) → attacker truyền 1 OR 1=1 dump toàn bộ DB.
  • Fix: parameterized queries db.query('SELECT * FROM users WHERE id = $1', [id]) hoặc ORM.
  • NoSQL injection MongoDB: { username: req.body.username } với body { username: { $gt: '' } } bypass auth.
  • Fix: validate với Zod/Joi trước khi query.
  • XSS (A07): lưu <script>alert(1)</script> vào DB rồi render unescaped → steal cookies.
  • Fix: escape output, CSP headers, DOMPurify.
  • ReDoS: /(a+)+/.test(userInput) với input 'aaaaaaaaab' → exponential backtracking block event loop hàng giây.
  • Fix: safe-regex package kiểm tra pattern, timeout regex execution.
  • Directory traversal: fs.readFile('/uploads/' + req.query.file) với file=../../etc/passwd.
  • Fix: path.resolve() + verify kết quả starts with allowed directory.
  • Prototype pollution: obj[userKey] = userValue với key __proto__ corrupt Object prototype.
  • Fix: Object.create(null) cho plain objects, validate keys.
  • Dependency vulnerabilities: npm audit + npm audit fix, snyk cho CI/CD.
  • Helmet.js: một lệnh app.use(helmet()) set 11 security headers (X-Frame-Options, HSTS, CSP cơ bản, nosniff).

Xem toàn bộ Node.js cùng filter theo level & chủ đề con.

Mở danh sách Node.js