Path traversal: /api/files?name=../../etc/passwd. Защита: 1) path.basename(filename) убирает путь, оставляет только имя файла. 2) Resolve и проверить prefix: const resolved = path.resolve(uploadDir, filename); if (!resolved.startsWith(uploadDir)) throw new ForbiddenError(). 3) Whitelist расширений: только .pdf, .png, .jpg. 4) Не выполняй user-uploaded файлы. 5) В production храни в S3 — не на диске сервера. 6) Проверяй MIME тип через magic bytes (file-type пакет), не только расширение.
Как защититься от path traversal атак при работе с файлами?
Senior
256 просмотровAFK Offer AI
Как реализовать Pub/Sub через Redis в Node.js?