Выполняет ли узел серверные сценарии на основе расширения файла или типа, аналогичного php? - PullRequest
0 голосов
/ 07 апреля 2020

Общий контекст

Я пытаюсь понять общие проблемы безопасности, связанные с веб-приложением, построенным на стеке MERN / MEAN (Mon go Express React / Angular NodeJS). У меня нет опыта создания PHP приложений, но многие примеры уязвимостей ссылаются на PHP, поэтому я пытаюсь понять, какие уязвимости в приложениях на основе PHP имеют аналоги в приложениях на базе узлов / express , Сегодня я занимаюсь выполнением скриптов на сервере.

Особенности

В узле / Express я не знаком со способом запуска выполнения файла, содержащего сценарии, в статически обслуживаемом каталоге, без определения специального маршрута и жесткого -кодирование вызова скрипта, как описано здесь: Выполнить Bash Скрипт с узлом из запроса клиента

и сокращенно здесь:

const { spawn } = require('child_process');
...
app.get('/script-file', function(req,res) {
    let command = spawn(__dirname + '/script-file.sh');
...

В отличие от этого, и если я правильно понимаю поведение PHP и Apache, GET-запрос к

http://example.com/script.php

вызовет выполнение сценария. php на сервере, и вывод этого сценария будет отправлен клиенту - для запуска выполнения не требуется никакого специального маршрута, только расширение файла ". php". Если другой файл, назовите его «evil-script. php», должен присутствовать (загружаться) в сети root, пользователь может просто запросить этот файл для запуска его выполнения. Кажется, что обработка файла (независимо от того, выполняется он на сервере или нет) зависит от расширения файла (. php выполняется, а .txt - нет).

Основной вопрос

Существует ли эквивалентное расширение или тип файла, который будет по умолчанию выполняться в узле при обнаружении в запросе GET?

Последующие вопросы

  • Если нет, означает ли это, что php представляет проблемы безопасности, которые просто отсутствуют в узле / express, как обычно настраиваемые?
  • Это на самом деле сравнение узла с apache?
  • Правильно ли говорить, что эти стеки воплощают очень разные философии, или это деталь?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...