2010-08-30 32 views
6

Hay una dirección IP (de China) que está intentando descargar todo mi sitio web. Descarga todas mis páginas y carga el servidor significativamente (tengo más de 500 000 páginas). En cuanto a los registros de acceso puedo decir que definitivamente no es un robot de Google ni ningún otro bot de motor de búsqueda.¿Prevención de descarga de sitios web enteros?

Temporalmente lo he prohibido (usando las reglas de iptables), pero no es una solución para mí, porque algunos de mis usuarios reales también tienen la misma IP, por lo que también están prohibidos y no pueden acceder al sitio web.

¿Hay alguna manera de evitar ese tipo de "actividad del usuario"? ¿Tal vez un mecanismo que implementa captcha si intentas solicitar más de 5 solicitudes por segundo o algo así?

P.S. Estoy usando Yii framework (PHP).

Cualquier sugerencia es muy apreciada.

gracias!

Respuesta

5

¡Has respondido tu propia pregunta!

¡Haga aparecer captcha si la solicitud excede cierto número por segundo o por minuto!

Debe utilizar CCaptchaAction para implementar, como this.

+0

Quería decir cómo debería implementar eso? : D sesiones de usuario? – Mensch

+0

Ver mi edición superior. – pavanlimo

0

Supongo que la mejor manera de monitorear la actividad sospechosa del usuario es realmente la sesión del usuario, CWebUser 's getState()/setState(). Almacene el tiempo de solicitud actual en la sesión del usuario, compárelo con varios valores previos, muestre captcha si el usuario realiza solicitudes con demasiada frecuencia.

Crear un nuevo componente, precargarlo a través de CWebApplication::$preload y verificar la actividad del usuario en la función de componentes init(). De esta manera, podrás activar y desactivar el control de bots fácilmente.

Cuestiones relacionadas