No estoy realmente seguro de que los libros sean la mejor manera para que un desarrollador aprenda seguridad. Mi propia experiencia es que, a menos que lo hagas, nunca se hunde y va a tomar muchos intentos para mejorar. La mayoría de los libros también están desactualizados rápidamente incluso cuando se imprimen.
El SDL de Microsoft (http://www.microsoft.com/securit…) y la guía de desarrollo OWASP (http://www.owasp.org/index.php/C…) son excelentes recursos, especialmente si está trabajando en desarrollo web.
Las hojas de trucos como el marco de seguridad de la aplicación web también son excelentes referencias rápidas y listas de verificación. Excelente para imprimir y poner frente a su computadora: http://msdn.microsoft.com/en-us/…
- ¿Qué es un software de ingeniería recomendado que sea compatible con Mac OS?
- ¿Existe un período óptimo de tiempo ininterrumpido (sin distracciones) que los programadores necesitan para trabajar de manera efectiva? Por ejemplo, estiramientos de treinta minutos no funcionan para mí.
- ¿Alguien está realmente contento con su sistema de seguimiento de errores?
- ¿Cómo funciona el software que verifica el plagio?
- ¿Cómo es trabajar en Amazon como ingeniero de calidad en el Reino Unido / Estados Unidos?
Solo codifique y aplique los principios básicos cuando codifique:
[+] autenticación
[+] autorización
[+] validación de entrada (esta es grande y difícil de realizar correctamente, por ejemplo, en campos de texto de forma libre) Probar contra este http://ha.ckers.org/xss.html y http://ha.ckers.org/sqlinjection/ es un buen comienzo y le llevará a través del 60-75% de las vulnerabilidades y debilidades más comunes en son formas en que los desarrolladores intentan desarrollarse a su alrededor
[+] registro y alertas sobre eventos de seguridad
[+] cifrado de datos confidenciales
[+] gestión de sesión si corresponde
[+] configuración segura por defecto
[+] su código no debe abrirse ni revelar información no esencial en los mensajes de error
La lección más importante también es ser perezoso: no reinventes la rueda con seguridad. Reutilice los controles de seguridad y las bibliotecas en su idioma, por ejemplo, si Java Spring Framework tiene excelentes formas de evitar la inyección de SQL simplemente usando consultas paramaterizadas. O pruebe el OWASP EASPI: http://www.owasp.org/index.php/C…
Use otros desarrolladores experimentados y su equipo de seguridad de TI para revisar por pares su código. Si puede ejecutar herramientas de análisis de código fuente o probar la penetración de su aplicación. Aprende de lo que estas recogiendo y trata de no repetir los mismos errores. Hacer un modelado de amenazas (http://msdn.microsoft.com/en-us/…) por adelantado antes de codificar también puede ayudar a evitar errores de seguridad de codificación y ahorrar tiempo.