Un posible escenario en el que este retraso podría deberse a una medida de seguridad es si el sitio está usando algo como Protocolo de rompecabezas del cliente (CPP) ) . Esto no aparece en el caso con enlace , pero se pueden usar CPP para prevenir ataques de denegación de servicio contra funciones de hashing lento . Básicamente, es una implementación del sistema de prueba de trabajo . Más detalles aquí .
La idea básica es forzar al cliente a hacer una cantidad significativa de trabajo, y demostrar que lo ha hecho, antes de que acepte un par de nombre de usuario / contraseña e intente validarlo. Visión general básica del enfoque de la publicación vinculada:
El servidor genera un rompecabezas aleatorio, y envía el rompecabezas a la
cliente. El servidor genera el rompecabezas de una manera que puede predecir.
razonablemente bien cuánto esfuerzo se requerirá para resolver el rompecabezas
(por ejemplo, 100 ms de cálculo). El cliente resuelve el rompecabezas, y luego
envía la solución junto con el nombre de usuario y la contraseña del usuario.
En una configuración web, esto probablemente se implementaría con Javascript:
La página de inicio de sesión contendría el código Javascript para resolver el rompecabezas.
y la descripción del rompecabezas. Se ejecutaría un navegador web de usuario legítimo
El Javascript en la página, que resolvería el rompecabezas e incluiría
la solución en el formulario junto con el nombre de usuario y la contraseña.
Según cómo se implementa esto, un sitio podría demorar la carga de la página de inicio de sesión hasta que el cliente (su navegador) resuelva el enigma. Una vez más, un mal diseño de la interfaz de usuario: simplemente deshabilito el botón de inicio de sesión hasta que se resuelva el problema y habilito el botón para enviar el formulario de inicio de sesión una vez que el cliente tenga una solución.