Estoy tratando de comprender las preocupaciones generales de seguridad asociadas con una aplicación web creada en una pila MERN/MEAN (Mongo Express React/Angular NodeJS). No tengo experiencia en la creación de aplicaciones PHP, pero muchos ejemplos de vulnerabilidades hacen referencia a PHP, por lo que estoy tratando de entender qué vulnerabilidades en las aplicaciones basadas en PHP tienen análogos en las aplicaciones basadas en nodos/express. Hoy, me preocupa la ejecución de scripts en el servidor.
En Node/Express, no estoy familiarizado con una forma de desencadenar la ejecución de un archivo que contiene un script en un directorio servido estáticamente, sin definir una ruta especial y codificar la invocación del script, como se describe aquí: Run Bash Script con Nodo de solicitud de cliente
y abreviado aquí:
const { spawn } = require('child_process'); ... app.get('/script-file', function(req,res) { let command = spawn(__dirname + '/script-file.sh'); ...
Por el contrario, y si entiendo correctamente el comportamiento de PHP y Apache, una solicitud GET a
http://example.com/script.php
hará que script.php se ejecute en el servidor, y la salida de ese script se envíe al cliente; no se requiere una ruta especial para activar la ejecución, solo la extensión de archivo ".php". Si un archivo diferente, llámelo "evil-script.php" estuviera presente (cargado) en la raíz web, un usuario podría simplemente solicitar ese archivo para activar su ejecución. Parece que el tratamiento del archivo (si se ejecuta en el servidor o no) depende de la extensión del archivo (.php se ejecuta, .txt no).
¿Existe una extensión o tipo de archivo equivalente que se ejecutaría de forma predeterminada en el nodo cuando se identificara en una solicitud GET?