5. A1-Injection
A2-Broken
Authentication and
Session Management
A3 - XSS
A4-Insecure Direct
Object References
A5-Security
Misconfiguration
A6-Sensitive Data
Exposure
A7-Access Control
A8-Cross-Site Request
Forgery (CSRF)
A9-Using Components
with Known
Vulnerabilities
A10-Unvalidated
Redirects and Forwards
21. A4-Insecure Direct Object References
No expongas información sensible de la implementación al usuario.
Ejemplo: No envíes el id del usuario logado en la url para utilizarlo
después.
22. A4-Insecure Direct Object References
Solución: Obtén de la sesión el dato que necesitas (en el caso de datos del
usuario logado)
24. A5 - Security Misconfiguration
No expongas más información de tu aplicación de la estrictamente
necesaria
Ejemplo: http://www.mrlooquer.com/list?q=%22X-Powered-
By:%20Express%22&page=2
27. A6 - Sensitive Data Exposure
Encripta todas las comunicaciones con tu aplicación para evitar robos de
información
Guarda unicamente lo estrictamente necesario y la información necesaria y
sensible guardala encriptada.
33. A8 - Cross-Site Request Forgery (CSRF)
Agrega un token a todas tus llamadas POST, PUT y PATCH que identifican
el origen de la llamada.
De este modo evitaras que un código malicioso pueda hacer llamadas a tus
endpoints que tu no controles.
36. A9 - Using Components with Known
Vulnerabilities
No ejecutes el servidor con permisos de root
Usa JSHint/JSLint
Intenta utilizar librerías que estén suficientemente testadas
Mantén actualizadas las librerías que utilizas para evitar posibles vulnerabilidades en las librerías
Utiliza el paquete nsp y chequea regularmente las librerías que utilizas en busca de posibles
vulnerabilidades
https://nodesecurity.io/opensource
38. A10 - Unvalidated Redirects and Forwards
No hagas un redirect al usuario a urls que vienen definidas en query
params, etc sin chequear el destino
Intenta siempre que las urls donde redirigas no se estén definidas en un
entorno donde puedan ser cambiadas por un código malicioso