Todo lo que implica una interacción directa con el servidor .
Y por servidor no me refiero al servidor web, sino a la máquina que ejecuta el servidor web (el término máquina podría estar equivocado, ya que muchos servidores web en la red se ejecutan en las llamadas máquinas virtuales , que es básicamente una máquina dividida en muchos entornos) .
Esto puede ser muchas cosas:
- ¿Debo hacer desarrollo iOS o desarrollo web completo?
- ¿Qué hizo Rocket Internet para que el sitio web se cargara tan increíblemente rápido?
- ¿Es difícil pasar de un sitio de WordPress a uno que se codifica directamente sin un cms?
- ¿Cuáles son las ventajas y desventajas de alojar un sitio web utilizando Dropbox / Google drive?
- ¿Dónde puedo encontrar un trabajo de desarrollador front-end remoto?
- Interactuar con el sistema de archivos: enumerar archivos, crear archivos, crear directorios, manipular derechos, etc.
- Ejecución de otros programas: todos los idiomas, ya sea Ruby, Python, Java o PHP, tienen algún tipo de sistema llamada, que te permite ejecutar programas como si estuvieras en un shell
- Interactuar con el sistema operativo: crear procesos bifurcando, ejecutar cosas como diferentes usuarios, incluso crear usuarios y grupos de usuarios, instalar nuevo software, programar tareas para más adelante
- Interactuando con el núcleo: Esto está básicamente incluido en todo lo anterior. Interactúa con el núcleo enviando interrupciones a los programas de usuario
- Interactúe con el hardware directamente: Sí, ¡incluso esto es posible! Por supuesto, es posible que no esté utilizando un lenguaje web estándar para este propósito.
En teoría, puede hacer todo en el backend, ya que el backend no significa más que un programa que se ejecuta en un servidor e interactúa con Internet . Sin embargo, la mayoría de las cosas mencionadas anteriormente no se usarán en el desarrollo tradicional de backend, ya que existen serias preocupaciones de seguridad con los programas que realizan operaciones de tan bajo nivel.
Tan pronto como abres una conexión a Internet, abres una vulnerabilidad potencial. Cuanto más bajo sea el nivel de las operaciones, mayor será el nivel administrativo requerido para ejecutarlas. En la práctica, eso significa que, si tiene un programa de servidor web que es capaz de, por ejemplo, crear usuarios, lo más probable es que tenga que ser ejecutado por el usuario root . Ahora imagine que alguien encuentra un agujero en su programa y puede ejecutar código malicioso, está jodido, porque ese código tiene derechos de superusuario de inmediato.