Веб-безпека · Middle · Запитання 67 з 75
Як запобігти path traversal в ендпоїнті завантаження файлів?
res.sendFile(path.join(UPLOADS, req.query.name));- ✓Правильна відповідь: Розв'язати кінцевий шлях і перевірити, що він усе ще в
UPLOADS, або зіставляти ID з файлами замість імен - 2Один раз прибрати
..черезreplace - 3Дозволяти лише імена, що закінчуються на
.pdf
Пояснення
../../etc/passwd і закодовані варіанти виходять із папки. Надійно перевіряти розв'язаний абсолютний шлях або зовсім не використовувати шляхи від користувачів.