Autenticación y autorización.
Diseñar una buena estrategia de autenticación es importante
para la seguridad y confiabilidad de la aplicación.
Fallar en el diseño de la estrategia de autenticación deja a
la aplicación vulnerable a ataques de tipo spoofing
attacks, dictionary attacks, session hijacking y otros.
Diseñar una buena estrategia de autorización es importante
para la seguridad y confiabilidad de la aplicación.
Fallar en el diseño de la estrategia de autorización deja a
la aplicación vulnerable a divulgación de
información, manipulación de datos,
y aumento de privilegios.
Almacenamiento en
caché.
El almacenamiento en caché puede mejorar el rendimiento y la
capacidad de respuesta de la aplicación. Sin embargo, un mal diseño puede
degradarlos.
Se debe utilizar el almacenamiento en caché para optimizar
la búsqueda de datos recurrentes,
disminuir la carga en la red de comunicaciones y evitar la duplicidad de
procesamiento.
Cuando se implementa el almacenamiento en caché se debe
decidir cuándo cargar los datos y cuándo removerlos debido a que han expirado.
Se recomienda el uso de mecanismos asíncronos para la carga
(en caché) de datos de uso recurrente.
Comunicaciones.
Las comunicaciones se refieren a la interacción entre los
componentes de la aplicación a través de capas y niveles. El mecanismo a elegir
depende de los escenarios de implementación que la aplicación debe soportar.
Administración de la
configuración.
Diseñar un buen mecanismo de gestión de la configuración es
importante para la seguridad y la flexibilidad de la aplicación.
No hacerlo deja a la aplicación vulnerable a una variedad de
ataques y también conduce a una sobrecarga administrativa para la aplicación.
Administración de
excepciones.
Diseñar una buena estrategia de gestión de excepciones es importante
para la seguridad y la confiabilidad de la aplicación.
No hacerlo puede obstaculizar el diagnóstico y la resolución
de problemas de la aplicación. También puede dejar a la aplicación vulnerable a
un ataque de denegación de servicio (DoS)
que podría revelar información sensible y crítica.
El manejo de excepciones es un proceso costoso, por ello es
importante que el diseño tome en consideración los problemas de desempeño.
Un buen enfoque es diseñar un mecanismo de manejo de
excepciones centralizado y considerar puntos de acceso dentro de un sistema de
gestión de excepciones (como WMI)
como soporte a los sistemas de monitoreo empresarial como Microsoft System Center.
Registro (logging) e
instrumentación.
Diseñar una buena estrategia de registro (logging) e
instrumentación es importante para la seguridad y confiabilidad de la
aplicación.
No hacerlo puede dejar vulnerable a la aplicación a repudiation threats, en donde los
usuarios niegan sus acciones y el repositorio de almacenamiento de registro puede
ser requerido para demostrar fechoría en procedimientos legales.
Se debe auditar y registrar toda actividad a través de las
capas de la aplicación, que pueda ayudar a detectar actividades sospechosas y
proporcionar alertas tempranas de un ataque grave.
La instrumentación puede ser implementada mediante el uso de
contadores de desempeño y eventos que proporcionen al administrador del
sistema, información acerca del estado, el desempeño y la salud de la
aplicación.
Administración del
estado.
La gestión del estado se refiere al manejo de la
persistencia de datos que representan el estado de un componente, operación o
fase de un proceso. Los datos del estado pueden ser persistidos utilizando
diferentes formatos y tipos de almacenamiento. El diseño de un mecanismo de
gestión de estado, puede afectar el desempeño de la aplicación. Persistir
incluso pequeños volúmenes de información de estado puede afectar el
rendimiento y la capacidad de escalabilidad de la aplicación. Se deben tomar en
cuenta las opciones que están disponibles para la gestión del estado.
Validación.
Diseñar un mecanismo eficaz de validación de datos de
entrada es importante en términos de usabilidad y confiabilidad de la
aplicación.
No hacerlo puede dejar a la aplicación abierta a datos inconsistentes,
violaciones a reglas de negocio y una mala
experiencia de usuario.
No realizar validaciones de entrada adecuadamente también
puede generar problemas de seguridad como cross-site
scripting attacks, SQL injection attacks, buffer overflows, y otros tipos
de ataques de entrada.
No hay comentarios.:
Publicar un comentario