Guía de Desarrollo Seguro en Flexygo

Creado por Rubén Pardo Orero, Modificado el Mie, 17 Dic a 11:39 A. M. por Rubén Pardo Orero


1. Principio de mínimo privilegio (obligatorio)

Todo objeto, proceso o personalización DEBE crearse aplicando el principio de mínimo privilegio.

  • Definir explícitamente roles con acceso y sus permisos de lectura, escritura y eliminación

  • Evitar objetos accesibles por todos los usuarios.

  • No confiar en la visibilidad del botón como control de seguridad.

  • Bloquear ejecución directa por URL si no procede.

  • Abrir objetos innecesarios en el API.


2. Integración de Flexygo en un ciclo CI/CD

Flexygo debe integrarse en un pipeline de CI/CD para garantizar calidad y seguridad continua.

  • Control de versiones mediante paquetes nuget.

  • Usar repositorios centralizados (Git).

  • Definir una política de Hotfix



3. Inclusión de tests en el CI/CD

Todo desarrollo debe incluir pruebas automatizadas, adaptadas a la naturaleza low-code de Flexygo.


  • Desarrolla test de interfaz para garantizar la funcionalidad completa y accesos.

  • Test unitarios para probar las dlls o storeds.

  • Incluye la ejecución de los test nativos de flexygo para garantizar la estructura de la herramienta.

  • Añade tests de carga si vas a trabajar en entornos de muchos usuarios.



4. Protección de contraseñas y secretos

Es obligatorio garantizar que ninguna contraseña o secreto sale al exterior.

  • Prohibido:

    • Hardcodear contraseñas en código, SQL o configuración.

    • Enviar credenciales por logs o errores.

    • Subir contraseñas al control de código.

  • Añadir controles en el pipeline que:

    • Busquen patrones de secretos en el código

    • Bloqueen el despliegue si se detectan



5. Auditoría

5.1 Activación de auditoría

  • Activar auditoría en todos los objetos que:

    • Manejen datos sensibles

    • Permitan cambios críticos

    • Afecten a procesos de negocio clave


6. Desarrollo seguro de DLLs

Cuando se desarrollen DLLs personalizadas, se deben cumplir estrictamente las siguientes normas.

6.1 Acceso a base de datos

  • Usar exclusivamente:

    • SQL parametrizado

    • Stored Procedures

  • Prohibido el SQL dinámico construido por concatenación.

❌ Incorrecto:

string sql = "SELECT * FROM Clientes WHERE Id = " + id;

✅ Correcto:

SqlCommand cmd = new SqlCommand("GetClienteById", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@Id", id);


7. Checklist de revisión

Antes de desplegar a producción asegúrate que cumples estos puntos:

  •  Se aplica mínimo privilegio en todos los objetos

  •  Flexygo integrado en CI/CD

  •  Tests ejecutados correctamente en el pipeline

  •  No existen contraseñas ni secretos expuestos

  •  Auditoría activada donde corresponde

  •  DLLs usan SQL parametrizado o stored procedures


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo