Patrones de diseño seguro, frameworks de seguridad en lenguajes
¿Qué es Patrones de diseño seguro, frameworks de seguridad en lenguajes?
La clave de para desarrollar software seguro es conocer las peculiaridades del lenguaje que se está utilizando, así como crear algoritmos seguros y utilizar componentes conocidos y verificados por la comunidad (tanto la que lo mantiene como la que hace uso del mismo).
En este caso podemos identificar el uso de lenguajes, frameworks, librerías, patrones de diseño, etc... Como los elementos en los que deben seguir guías de buenas prácticas.
Índice de Controles Proactivos de OWASP
https://cheatsheetseries.owasp.org/cheatsheets/IndexProactiveControls.html
Cheat Sheets de OWASP
El primer enlace que deberías visitar: https://cheatsheetseries.owasp.org/
Guías de Desarrollo Seguro
Guía de Desarrollo Seguro general de OWASP
Para consultarla puede consultar los siguientes enlaces:
Castellano (v2.0) | Inglés (2.0.1 y 3.0 beta) |
---|---|
https://owasp.org/www-pdf-archive/OWASP_Development_Guide_2.0.1_Spanish.pdf |
Guías de Desarrollo Seguro
Tecnología | Recurso |
---|---|
Java (STS) | |
Android | |
iOS | |
Python | https://snyk.io/blog/python-security-best-practices-cheat-sheet/ |
CSS | https://cheatsheetseries.owasp.org/cheatsheets/Securing_Cascading_Style_Sheets_Cheat_Sheet.html |
Guías de buenas prácticas
Tipo de desarrollo | Área de interés |
---|---|
Criptografía | |
Uso de archivos Zip (Lenguajes: Java, JS, Go, .Net) | |
Expresiones regulares | https://cheatography.com/davechild/cheat-sheets/regular-expressions/ |
Procesos de Autenticación | https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html |
Control de accesos | https://cheatsheetseries.owasp.org/cheatsheets/Access_Control_Cheat_Sheet.html |
Gestión de sesiones | https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html |
Gestión librerías de terceros en Javascript | https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html |
Peticiones AJAX | https://cheatsheetseries.owasp.org/cheatsheets/AJAX_Security_Cheat_Sheet.html |
JWT en Java | https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_Cheat_Sheet_for_Java.html |
JWT en FrontEnd | https://onesaitplatform.atlassian.net/wiki/spaces/technologyDocEs/pages/3796212987 |
Frameworks
Normalmente todos los frameworks actuales contienen sus propios componentes para garantizar la seguridad. Siguiendo el principio "DRY" (Don't Repeat Yourself, en castellano ¡No Te Repitas!)
Patrones de Diseño (Seguros)
De todos es sabido que los patrones de diseño son estándares verificados y muy útiles para desarrollar en común software. En este caso hacemos mención a un punto que a veces no se abarca de manera correcta, como e la seguridad. Los patrones de diseño no solo deben ser efectivos en sus funciones sino que además deben garantizar que realizan esta función de la manera para las que fueron ideados y libres de vulnerabilidades.
Para ello te recomendamos la siguiente lectura:
Enlaces de interés
Tecnología | Tipo | Enlace | Descripción |
---|---|---|---|
| Memoria virtual | https://www.internalpointers.com/post/introduction-virtual-memory | Introducción a la arquitectura de la memoria virtual |
Java | Recolector de basura | https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html | Documentación del funcionamiento del recolector de basura de Java. El conocer como funciona puede ayudar a entender cómo se gestiona la memoria en términos de recursos. |
Java (10+) | Inferencia de tipos de datos | Buenas prácticas de creación y uso de las variables. | |
NodeJS | Gestión de versiones | Este desarrollo permite tener varias instancias diferentes de npm, de manera que con un comando seleccionamos la versión que deseamos (también instalarla). De esta manera podemos probar que los proyectos funcionan con las versiones más recientes de NodeJS, lo cual es sumamente recomendable. Puedes comprobar los CVE en este enlace. | |
Tomcat | Bastionado | Eliminación de versiones en los mensajes de error. |