Así que estoy en el proceso de hacer un formulario de inicio de sesión para los usuarios, y me gustaría hacer las cosas tan seguras como razonables. Es un sitio para consumidores, no un sitio financiero, pero al ver cómo me gusta que las cosas estén seguras cuando inicio sesión en un sitio web, trato de mantener las cosas lo más seguras posible en mi formulario.
Pasos que he tomado hasta ahora:
El sitio tiene un certificado ssl con un servidor configurado para admitir los encriptaciones más fuertes y al mismo tiempo permite que la ruina de Internet acceda a nuestro sitio (tenemos algunos clientes antiguos, año bueno)
La contraseña está hash con bcrypt.
Para el formulario de inicio de sesión, estoy usando un csrf_token generado por hasing bcrypt from
- nombre de host
- usuario ip
- session_id
- id_usuario
la identificación de usuario se genera para cada usuario que visita el GUID cuando aún no ha iniciado sesión, esto se almacena en la sesión en el primer acceso al sitio y no es visible para los usuarios.
El csrf no se vuelve a generar para cada solicitud de página debido a problemas de historial y, como se dijo, no somos una institución financiera y para cualquier complemento es trivialmente fácil de cosechar cualquier token de csrf. Así que ese es un paso que no necesito dar para asegurar la página (lo que he leído en este sitio de todos modos)
las secuencias de comandos entre sitios están deshabilitadas.
agregó X-Frame-Options: SAMEORIGIN
headers
La pregunta: ¿Hay otros pasos que pueda seguir o necesito considerar que aseguren el proceso de inicio de sesión / interacción del usuario?