Debes aprender y comprender todas (o al menos la mayoría) las formas en que se ataca el software. A nivel del sistema, debe preocuparse por los desbordamientos de búfer, los errores relacionados con enteros (desbordamiento, subdesbordamiento, truncamiento, desajuste firmado / sin firmar, etc.), corrupción de memoria, inyección de comandos y una gran cantidad de otras clases de vulnerabilidad y ataque que Estoy fallando en pensar en la parte superior de mi cabeza.
Todos estos esencialmente se reducen a la validación de entrada. NUNCA confíe en los datos hasta que se verifique que se ajuste a las suposiciones que haga sobre los datos. Definitivamente, no confíe en ningún dato que pueda haber sido manipulado en cualquier momento por un usuario. Esto incluye entrada de teclado, archivos, datos de red y cualquier otro dispositivo de entrada.
Si está haciendo algo con cifrado, lea Criptografía aplicada de Bruce Schneier. En resumen, no escriba sus propios algoritmos, y tenga cuidado de que su procedimiento para manejar datos encriptados no se omita ni manipule fácilmente.
Al tratar con sistemas de permisos, verifique y haga cumplir cualquier suposición. Asegúrese de que sus reglas realmente restringen a los usuarios adecuadamente.
- Cómo aprender nuevas palabras / vocabulario para el SAT
- Cómo empezar a aprender el diseño web.
- ¿Cuáles son algunas de las técnicas de retoque fotográfico más fáciles de aprender para los aficionados?
- Al aprender un nuevo idioma, ¿podré entender mejor el sonido de un nuevo discurso con mayor claridad si se hace más fuerte?
- ¿Cuánto tiempo lleva perfeccionar el marketing digital como un conjunto de habilidades? ¿Cómo puedo lograrlo?
En resumen, no haga suposiciones no verificadas y piense como un mal tipo.