Сейчас я использую несколько серверов node.js на одной платформе. Где-то вдоль строк кода фреймворка у меня есть небольшой фрагмент:
//...
if (subdomain.staticFolder) {
let relativePath = subdomain.staticFolder + path.sep + path.normalize(url);
if (fs.existsSync(relativePath)) {
let fileStats = fs.statSync(relativePath);
if (fileStats.isFile()) {
//...
Этот фрагмент находится внутри обработчика, который управляет трафиком запроса. Короче говоря, он просматривает папку static/
для домена и проверяет, соответствует ли какой-либо файл запросу.
Меня беспокоит, что злоумышленник может прийти и попытаться получить доступ к файлам веб-сервера, используя этот метод поиска статических файлов. Например:
https://www.example.com/../index.js
https://www.example.com/../serverStructure.json
Возможно ли это, или я просто волнуюсь? И, если это возможно, каковы некоторые потенциальные решения? Будет ли жизнеспособным перемещение статических файлов в корзину S3? Даже если это невозможно, это все равно плохая бэкэнд-практика?