Comenzaría mirando el OWASP Top 10. Por supuesto que hay (mucho) más que simplemente tener una lista. También puede haber regulaciones en su país que deben ser consideradas. Te recomiendo que veas esto primero.
¿Has pensado en lo siguiente:
- Autenticación de dos factores: ¿Cómo vas a implementar esto? (Lista de tokens, mensaje SMS, aplicación de teléfono, lector de tarjetas con respuesta de desafío, basado en certificado)
- Implementando un mecanismo de autorización fuerte. (Considere usar el estado, aunque muchas personas piensan que las API (REST) deberían ser sin estado, estoy totalmente en desacuerdo)
- Comunicarse a los sistemas de back-end a través de API's. Estas API deben verificar si un usuario está autorizado para realizar esta acción (ver # 2)
- ¿Qué acciones pueden realizar los clientes una vez que inician sesión? (Piense en la funcionalidad de carga, por ejemplo) Realice un análisis de contenido para detectar malware y virus. Si, por ejemplo, se requieren subir imágenes (una factura, por ejemplo), considere convertir la imagen (8 bits) para deshacerse de posibles "cargas útiles".
- Los clientes deben ser desafiados al realizar operaciones sensibles.
- Implemente autenticación mutua (también llamada autenticación SSL de dos vías) desde el software intermedio al sistema de fondo.
Estos son solo algunos elementos a considerar y la lista está lejos de ser completa. Espero que esto te dé al menos un comienzo.
Se recomienda encarecidamente realizar evaluaciones de seguridad y revisiones de código seguras en todo su código (regularmente).
Otra cosa a considerar es tener un experto en seguridad involucrado al principio del proceso. Mi experiencia personal es que a los profesionales de la seguridad generalmente se les pide que realicen una evaluación de seguridad cuando quieran comenzar la producción dos semanas después.