Supongamos que un atacante ha obtenido su base de datos a través de medios nefastos.
Si almacena los nombres de usuario y las contraseñas en texto plano, todo se ve comprometido de inmediato. Es probable que el atacante también tenga contraseñas para varios otros sitios para estos usuarios.
Un truco es descifrar la contraseña. El problema es que pueden usar una mesa arcoiris para atacarla. Eso básicamente significa que pueden revertir el hash.
- ¿Cuántas secuencias simultáneas puede admitir el complemento Wowza Transcoder por núcleo?
- ¿Se ha vuelto más difícil escribir aplicaciones web desde la llegada de AngularJS?
- Estoy tratando de construir una aplicación web y móvil de estilo periscopio. ¿Qué marco es el más adecuado para la tarea: Ruby on Rails o Meteor.js?
- ¿Qué es un buen diseño de arquitectura para aplicaciones web?
- ¿Cuáles son las mejores empresas de desarrollo de aplicaciones web en Ahmedabad?
Para evitar esto, tiene varias opciones. Primero, utiliza un algoritmo hash relativamente lento. Esto hará que les tome más tiempo atacar los datos. La compensación allí es que los usuarios legítimos en el sitio activo tendrán mucho retraso. Blowfish si uno que he leído es muy efectivo.
Luego, usas una sal. Una sal es una cadena de caracteres generada aleatoriamente que anexas a la contraseña antes de hacer un hash para que sea más difícil de descifrar.
Para obtener mejores resultados, puede resaltar y volver a mostrar la contraseña a todos los que inicien sesión.
Puedes buscar en google pez globo y sal para encontrar algunos tutoriales detallados sobre cómo hacer esto. Encontré uno excelente sobre cómo hacer esto con PHP que fue genial y lo vincularé para poder encontrarlo más tarde.
Además, debe usar https durante el inicio de sesión.
Además, para una mayor protección, puede cifrar la base de datos. El servidor SQL tiene un cifrado de datos transparente realmente simple para cifrar sus datos en reposo de modo que incluso si obtienen sus bases de datos (suponiendo que no obtuvieron una inyección SQL que les permita volcar sus datos o si tienen acceso a el propio dbms), no podrán leerlo sin la clave.
Además, bloquee las cuentas de su base de datos para obtener el menor acceso del usuario. No permita que una cuenta que ingresa datos tenga acceso al campo de contraseña. No permita que la cuenta de lectura tenga acceso tampoco. Solo permita que la cuenta que autentica tenga acceso.