En este sitio, si hace demasiados clics o publica comentarios demasiado rápido o algo así, se le redirige a la pantalla "¿Es usted un humano?". ¿Alguien sabe cómo hacer algo similar?Cómo implementar la función "¿Eres humano?" De Stack Overflow
Respuesta
aquí es un muy buen Captcha control para asp.net que primero de todo lo que necesita
http://www.codeproject.com/KB/custom-controls/CaptchaControl.aspx
continuación, puede utilizar junto con la idea de que trate de encontrar los ataques DOS
estar al tanto de un error en este código en la línea if (context.Request.Browser.Crawler) return false ;, debe devolver true o eliminarlo por completo.
y hágala su compinación para los clics o los envíos.
Si un usuario hace demasiados clics en un período de tiempo, o muchos envíos, entonces simplemente abra el control de capthaControl, y si los clics son demasiados, entonces pruebe los dos attact. De esta forma tienes 2 soluciones en una, Dos attact previene, con captcha al mismo tiempo.
He hecho algo parecido a mí mismo, pero he cambiado el código fuente de ambos, mucho para satisfacer mis necesidades.
Un enlace más interesante para un código diferente para el ataque dos.
http://madskristensen.net/post/Block-DoS-attacks-easily-in-ASPNET.aspx
Esperanza ayuda esto.
acaba de comprobar el número de golpe/minuto que se obtiene de una IP específica o sesión o lo que sea y decidir cuáles son sus umbral preferido y su buena para ir
Solo asegúrate de que el período de tiempo sea correcto, de lo contrario los usuarios rápidos se sentirán muy molestos y podrías ahuyentar a algunos de los usuarios más útiles. –
O usuarios de una organización que usa un único proxy para acceder a Internet – Kirschstein
Es evidente que no sabe de qué se trata esta pregunta. – Omar
Ahora lo hago. Creo. :-) Pero lo más importante, otros parecen hacer y producir respuestas en consecuencia. –
En una conjetura ...
Escriba un controlador HTTP que registre las solicitudes y las almacene en sesión.
Cuando entra una nueva solicitud, verifique cuántas solicitudes se almacenan (y caducan las anteriores).
Si la cantidad de solicitudes en los últimos minutos supera un umbral determinado, redirija al usuario.
Si está haciendo esto en formularios web ASP.NET, puede hacer esta comprobación en la página maestra del sitio (o escribir un IHttpHandler
).
Si está utilizando un marco MVC, podría escribir un controlador base que realice esta comprobación para cada acción.
Con rieles, puede escribir un filtro before_request
.
Con MVC asp.net, se podría escribir un atributo [ActionFilterAttribute]
También me gustaría comprobar el encabezado de agente de usuario de la solicitud - si no se ve como un popular navegador (o está vacío) y luego tirar el "¿eres un humano?" página.
¿Por qué ser cruel con aquellos de nosotros que navegamos con enlaces?!? –
Los enlaces son linx (¿el navegador basado en texto?) Si es así, estoy bastante seguro de que envía un encabezado de agente de usuario adecuado, por lo que no se verán afectados. Estoy hablando de encabezados como GoogleBot, MSNSpider, etc. –
Esta es una muy mala idea, es lo que lleva a cosas como aplicaciones que requieren IE6 porque IE7 no era un navegador válido en ese momento, o lo que PayPal hace si intentas comprar algo usando un navegador móvil. –
es casi ciertamente una heurística que intenta "adivinar" que un usuario es algún tipo de proceso automatizado, en lugar de una persona, por ejemplo:
- Más de solicitudes "x" para hacer la misma cosa en una fila
- más de las acciones "x" en un período de "y" de tiempo
Normalmente, la "x" y los valores de "y" se formularía a ser los que sería poco probable que un " persona real "para hacer, como:
- Edición de la misma respuesta 5 veces seguidas
- downvoting 10 preguntas dentro de 1 minuto
Una vez que tenga su conjunto de reglas, a continuación, puede aplicar un código que les comprueba al comienzo de cada solicitud, ya sea en un método que se llama en Page_Load, algo en su página maestra, algo en la tubería asp.net, ¡eso es lo fácil! ;)
¿Cómo publicó una respuesta en una pregunta migrada? – Earlz
@Earlz, recuperé mi respuesta. Supongo que el proceso de migración lo eliminó. Como no estaba de acuerdo con la migración, y el sitio me dio un enlace de "recuperación", "protesté" contra la migración al anular mi respuesta. – Rob
Eso es casi seguro un error/comportamiento involuntario .. – Earlz
Debe tener una sesión para rastrear la actividad del usuario.
En la sesión se puede tener contador para comentar y publicar como:
(pseudo código en lugar de C#, lo siento :)
if (post_event) {
posts_during_1_minute_interval++;
if (time_now-reference_time > 1_minute) {
reference_time = time_now;
posts_during_1_minute_interval=0;
}
}
...
if (posts_during_1_minute_interval > 10) redirect("/are-you-human.htm");
donde son sobre-que-human.htm página podrá tener recaptcha, ya que tienen aquí en StcakOverflow.com
ver también: http://blog.stackoverflow.com/2009/07/are-you-a-human-being/
- 1. Cómo implementar la búsqueda como Stack Overflow
- 2. ¿Cómo puedo implementar filigranas similares a Stack Overflow en formularios?
- 3. Haskell Stack Overflow
- 4. Etiqueta autocompleta como Stack Overflow
- 5. ¿Cómo obtener URLs limpias como Stack Overflow?
- 6. ¿Eres humano? (o Cómo evitar el correo no deseado)
- 7. ¿Cómo incluye Stack Overflow los archivos Javascript?
- 8. ¿Cómo se usaría Lucene.NET para ayudar a implementar la búsqueda en un sitio como Stack Overflow?
- 9. Stack Overflow Algoritmo de preguntas relacionadas
- 10. Mensaje de encabezado como en Stack Overflow
- 11. ¿Qué solución OpenID realmente usa Stack Overflow?
- 12. Iniciando sesión en Stack Overflow con cURL
- 13. Sistema de votación Stack Overflow/reddit en php
- 14. Cómo mostrar un mensaje emergente como en Stack Overflow
- 15. Cómo crear una paginación como Stack Overflow sitio
- 16. ¿Cómo combinar WMD y embellecer, como Stack Overflow?
- 17. ¿Eres responsable de implementar tu código en un entorno real?
- 18. Etiquetas que flotan como Stack Overflow utilizando jQuery
- 19. ¿Qué idiomas se usan en 404 Budgot de Stack Overflow?
- 20. Stack Overflow API: obtenga el "nuevo correo" del usuario. ¿notificación?
- 21. Cómo crear un sistema de etiquetado como en Stack Overflow o Quora
- 22. Ideas sobre la implementación de los comentarios al estilo Stack Overflow
- 23. ¿Cómo implementar la función recordarme?
- 24. Stack Stack
- 25. ¿Cómo implementar la función de reversión?
- 26. ¿Cómo coloco un widget para Stack Overflow en mi sitio de WordPress?
- 27. ¿Cómo crear una vista visual diff como lo hace Stack Overflow?
- 28. ¿Cómo puedo colorear mi código en Stack Overflow cuando publico una respuesta?
- 29. Cree permalinks cortos similares al "enlace permanente corto a esta pregunta" de Stack Overflow
- 30. ¿Debo solicitar a las comunidades de programación en línea como Stack Overflow asesoramiento sobre licencias?
Hola gente, esto no pertenece a Meta! Esto se trata de verificar que alguien es humano. Simplemente están usando SO como ejemplo – Earlz
@Earlz: Eso no es lo que decía la pregunta original, especialmente dado el título de la pregunta. –
Este tipo de característica se conoce como molesto. – JonH