Creé un formulario con Html, CSS y JavaScript y una API con ASP.NET para la solicitud HTTP. Los usuarios dispondrán de un enlace para rellenar el formulario. ¿Hay alguna identificación de navegador o IP que pueda obtener para evitar que el usuario envíe varias veces el formulario?
Deshabilitar el botón de envío no es una opción. El formulario debe ser anónimo, por lo que una identificación única para los usuarios tampoco es una opción.
podría hacer como una cookie en java script que no caduca. después de eso, puede hacer un estado if else y verificar la cookie si existe en el navegador
value_or_null = (document.cookie.match(/^(?:.*;)?\s*MyCookie\s*=\s*([^;]+)(?:.*)?$/)||[,null])[1] // Put your cookie name in in place of MyCookie. if (value_or_null = 1) { //redirect to other page } else { // let him do the form }No hay una forma 100% segura, ya que los usuarios que regresan podrían haber borrado su caché o algo así. Además, el seguimiento de la IP podría funcionar, pero pide anonimato total...
Si desea que su servidor tenga autoridad sobre esta decisión, la única información que tendrá o podrá utilizar es la dirección IP. Incluso eso no sería exacto si sus usuarios utilizan diferentes VPN y demás.
Lo que creo que podría funcionar es si el enlace para que los usuarios accedan al formulario sea único para cada usuario. Generaría un UUID, de esa manera no se puede adivinar si los usuarios quieren responder más de uno. Ese UUID no tendría ningún vínculo con ningún usuario, solo se almacenaría en una lista de UUID VÁLIDOS y se eliminaría cuando el usuario lo use para responder.
El enlace proporcionaría el UUID a través del parámetro de consulta, el javascript luego agregaría su valor al formulario cuando se envíe.
Si no vincula ese UUID a un ID de usuario o si el correo electrónico enviado (o su contenido) no se almacena, esto proporcionaría anonimato.