Además de la manipulación de la base de datos, ¿qué se puede hacer en el Back-End que no se puede hacer en el Front-End?

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:

  1. Interactuar con el sistema de archivos: enumerar archivos, crear archivos, crear directorios, manipular derechos, etc.
  2. 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
  3. 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
  4. 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
  5. 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.

Además de lo que Finn Tonekk mencionó, agregaría la gestión de sesión segura .

Tenemos la capacidad de establecer cookies en la máquina del cliente, pero nunca podrá asegurarse de que sean 100% precisas a menos que las compruebe en el servidor. Ser capaz de controlar y verificar la sesión de un usuario siempre requerirá alguna forma de comunicación con el back-end.