Ver Mensaje Individual
  #2  
Antiguo 31-12-2022
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Tecnicamente eso funciona. Un movil no es tan diferente de un computador cualquiera.

El problema es que exponer los puertos/conexions de la BD es riesgoso.

Normalmente se recomienda usar un modelo de N-capas donde tienes un servidor intermedio que media entre ambas partes. Eso implica toda una reescritura de la app.


Con las versiones modernas de las RDBMS puedes conectarte a ellas usando SSL:

https://learn.microsoft.com/en-us/sq...l-server-ver16

Ahora esta ruta te permite seguir como vas (y te da tiempo de ir beneficiándote de la app y ir desarrollando mejoras) pero requiere que le pongas MUCHO CUIDADO a como configuras y administras el servidor.

Entonces esto es el trade-off:

- Conectarte directo a la BD demanda que hagas TODO correcto en materia de seguridad/configuracion del servidor, incluyendo usar correctamente los permisos de la BD para que tu app NO use permisos de admin sino que tenga solo permisos de CRUD sobre tablas/vistas/procedimientos.
- Desarrollar NTier complica el desarrollo pero tienes una capa intermedia que puede usarse ademas como un puente que conecte a un hosting aparte del código de la app servidora


Ambos requieren configurar bien la seguridad y todo eso, solo que lo primero hay que ponerle aun mas importancia.
Si te vas por este camino, te recomiendo que:


- Uses SQL SERVER para linux en el hosting y un linux MUY cerrado/limitado (yo uso nixos que se puede configurar de forma que solo lo que exactamente usas es lo único instalado, y una vez aplicada la configuración el linux queda de "solo lectura" y no deja instalar nada mas)
- Asegurarte de usar solo conexión SSL a la bd
- Tener una herramienta que monitoree las conexiones y los accesos
- Utilizar correctamente los permisos de la BD y que la app no tenga nunca mas de permisos de los que necesite
- Tener un buen sistema de backups que se pruebe de forma rutinaria que funciona el restore!
- Usar un servicio como cloud flare que sea el primer layer de acceso a tu hosting.
- Usa consultas parametrizadas y prefiere procedimientos almacenados y/o vistas para los accesos sensibles

Esto parece complicado, lo es, pero es un costo de "una vez" mientras configuras todo. También es EXACTAMENTE lo que hay que hacer aun si usas el modelo de app servidor, es solo que muy pocos lo hacen

De todas maneras, es buena idea que modularizes la app, y vayas desarrollándola como si fuera N-capas aun si es un monolito al desplegar. Eso te da flexibilidad mas adelante.
__________________
El malabarista.

Última edición por mamcx fecha: 31-12-2022 a las 20:07:17.
Responder Con Cita