Могут ли веб-браузеры перемещаться вверх по каталогу с указанием местоположения URL-адреса? - PullRequest
0 голосов
/ 08 марта 2019

Сейчас я использую несколько серверов 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? Даже если это невозможно, это все равно плохая бэкэнд-практика?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...