Información de contacto presente
¿Tiene su correo electrónico o número de teléfono en su base de datos?
Si es así, envíe cualquier información a esa información de contacto y solo muestre un mensaje genérico "gracias, si está registrado con nosotros, recibirá una confirmación de su información de contacto registrada" en el sitio web. Este mensaje es siempre el mismo, no importa si el usuario está en la base de datos o no.
De hecho, para frustrar los ataques de tiempo, debe mostrar el mensaje y salir, y hacer la búsqueda y el envío de correo o SMS en un proceso por lotes en segundo plano.
La limitación de velocidad, etc. ya se mencionó, definitivamente se recomendó.
Sin información de contacto
Si entendí correctamente, también tienes usuarios sin ninguna información de contacto . Estos chicos son difíciles El problema es que el nombre y el DOB no son información secreta de ninguna manera. Para la mayoría de las personas, les lleva unos minutos descubrirlos, y cualquier atacante hábil probablemente pueda encontrarlos en una hora para el 99% de las personas.
Necesita al menos alguna información adicional que sea más difícil de encontrar y que pueda funcionar como secreto compartido . Ese es el razonamiento detrás de los diversos "nombres de soltera de las madres" o "el nombre de su primera mascota", las llamadas preguntas de seguridad.
Si no tiene nada más, no hay una manera segura de verificarlo. En este caso, debe hacer que esos usuarios se identifiquen de alguna manera confiable, por ejemplo. Al ir a una ubicación física y mostrar su pasaporte, o mostrar su pasaporte en una cámara web o en algún paso similar, dependiendo de la sensibilidad de los datos.
Este es un problema fundamental que no se puede resolver con tecnología o matemáticas, porque simplemente no hay suficiente información no pública presente.
Verifique si alguno de los otros campos almacenados en esa base de datos puede usarse como información de identificación.