Si está permitiendo que se ejecuten comandos de shell desde el navegador, lo que está haciendo de manera efectiva es permitir que el usuario inicie sesión y ejecute comandos en su sistema como el usuario con el que se ejecuta el servidor web. Pregúntese si eso es lo que quiere hacer? La respuesta es definitivamente no. De ninguna manera. No, nunca nunca. De hecho, los piratas informáticos pasan mucho tiempo tratando de averiguar cómo hacer lo que realmente diseñó en su sistema.
Puedes probar y "sanear" la entrada, pero lo único que estás haciendo es pedir a los piratas informáticos que intenten encontrar formas de eliminar el desinfectante. Probablemente sean más inteligentes que tú.
Puedes probar y ejecutar los comandos como un usuario con permisos restringidos. Entonces, efectivamente está permitiendo que cualquiera inicie sesión como ese usuario y ejecute comandos en ese sistema. El mecanismo de permisos de UNIX podría protegerte un poco.
Finalmente, podría intentar usar chroot
para crear un entorno muy restringido para ejecutar los comandos de bash. Eso es bastante trabajo, y aún existe la posibilidad de que los troyanos se instalen en el entorno restringido. Si planea esta opción, puede buscar el comando makejail: makejail .
La opción final es no permitir que los usuarios ejecuten comandos bash arbitrarios, sino proporcionar una lista de comandos preconfigurados que les permita ejecutar, que usted sabe que son seguros.
Además, puede ser vulnerable al error de Shellshock Shellshock