Bloquear los robots, reducir el número de usuarios fantasmas

Escrito por | 01 Octubre 2013 | Publicado en Octubre 2013
Con demasiada frecuencia, nos atacan scripts maliciosos que tratan de entrar en nuestro sitio web Joomla! para inyectar el spam en los comentarios en el sitio, foros, páginas amarillas, ... y, por supuesto, para generar usuarios fantasma si se aprueban automáticamente, tener un "usuario registrado" que probablemente va a publicar sus datos y, por tanto, el nivel de spam. Hay algunas técnicas eficaces para aplicar a Joomla! y así reducir esta amenaza. Dos de las técnicas implican el .htaccess y otra de administración de usuarios.

1 Protección .htaccess

El .htaccess es probablemente un desconocido para la mayoría de los webmasters. Este archivo no sólo permite reescribir URLs en el sitio web de Joomla (después de cambiar el nombre del archivo existente htaccess.txt a .htaccess), pero también puede servir como el primer muro para proteger el acceso a su sitio.

Este archivo siempre lo lee el servidor en primer lugar, antes de acceder a la página de destino de su sitio.

Por lo tanto si aquí se deniega el acceso a la dirección URL, cuando se trata de un robot o si se detecta que se trata de una URL tipo "spam" es decir, aquellas que contienen ciertas palabras que se consideran que están en una "lista negra".

A. Bloquear los robots

Cada solicitud que recibe su sitio web, es desde un programa, por lo general un navegador web, pero no sólo desde el, también se puede acceder desde una url, por ejemplo, un editor web, un procesador de textos, etc. y también puede acceder un software malicioso que se ha programado para, por ejemplo, hacer spam en sus sitio web, debilitar la seguridad... Hace unos años, había aspiradoras de sitios web que permitían su descarga para verlas "fuera de línea".

Estos programas suelen tener una firma: el código indicado en la variable "HTTP_USER_AGENT" que se transmite por el programa que inicia la conexión a su sitio web. Uno de los más conocidos (y odiado) es el agente "MSIE" que le permite saber que el visitante no es muy, umm, ¿Cómo decirlo amablemente?, exigente con la calidad del navegador.

Esta variable puede cambiarse con el programa (cualquier script puede suplantar al navegador, ya que no es una garantía en cuanto a saber quién está accediendo a su sitio).

Por lo tanto, bloquear los robots significa identificar el user_agent que se conoce como scripts maliciosos y bloquearlos.) En el sitio docs.joomla.org se propone una lista (no exhaustiva: Block bad user agents). (en inglés).

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:
 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. [OR] 
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] 
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] 
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] 
## Liste simplifiée ... 
RewriteCond %{HTTP_USER_AGENT} ^Zeus 
## Note: The final RewriteCond must NOT use the [OR] flag.   ## Return 403 Forbidden error. 
RewriteRule .* - [F]

Hay que editar el archivo .htaccess que está en la raíz del sitio web y agregar todas las líneas hasta el último RewriteCond "RewriteRule. * - [F]" para permitir redireccionar las páginas maliciosas a una página 403.

O, para que sea más divertido, sustituir la última línea, con la que está debajo, que es una redirección a un archivo (no redirigir a una imagen de su sitio, ya que el robot no va a acceder)

RewriteRule (.*) http://www.distilnetworks.com/wp-content/themes/distil/images/theft-bot-home.png [L,QSA]

Una vez que haya configurado el bloqueo de los robots en el .htaccess, puede probarlo en wannaBrowser: http://www.wannabrowser.com/index.php Esta es una de esas secuencias de comandos para iniciar una conexión con un sitio, pero aquí la idea es ofrecer e introducir una url y elegir un User_Agent que prefiera, si elige uno de los que se ha bloqueado, verá que se deniega el acceso a la página. 

B. Identificar direcciones URL sospechosas

Una URL sospechosa es la que contiene palabras "peligrosas" (como "DROP" lo que podría significar un intento de eliminar una tabla en la base de datos (que sería aquí un ataque llamado "inyección SQL")) o las palabras que se encuentran en muchos de los spam que sin duda ha visto en su sitio web.

Es necesario completar esta lista y alimentarla. Hay ciertos sitios que ofrecen varias listas. Si instala CrawlProtect encontrará que el .htaccess que genera contiene una lista impresionante de palabras clave. 

RewriteCond %{QUERY_STRING} ^.*(curl|wget|drop|truncate).* [NC]
RewriteRule ^(.*)$ index.php [F,L]

2. Gestión de usuarios

Después de haber bloqueado los robots y utilizado algunas palabras clave que se encuentran en direcciones URL, es necesario prohibir a los usuarios crear una URL estándar para Joomla. De hecho, cuando autorizó la creación de cuentas de usuario en su sitio web, es posible acceder a la URL http://su_sitio_web/index.php?option=com_users&view=registration. Este sitio es el que muestra el formulario para crear una cuenta y por lo tanto, si un script malicioso accede a la url, este script puede completar los diferentes campos y enviar el formulario.

En caso de que haya activado la aprobación automática de las cuentas, creas un usuario nuevo, y un segundo y un tercero ... tantos como el script desee crear.

Una vez aprobado, este script tiene un acceso de usuario a su sitio web, lo más probable es que sea un tipo de acceso registrado, que tendrá algunos derechos adicionales, como la capacidad para publicar un comentario, escribir un nuevo tema en el foro. ... Y aquí te encuentras con un spam que no tiene fin.

Para restringir severamente el acceso, es fácil: desactivar la creación de cuentas de usuario en su sitio Joomla.

Pero si desea ofrecer a sus visitantes la posibilidad de inscribirse, utilice por ejemplo Community Builder. Esto es lo que hice en el blog (http://allevents.avonture.be): Community Builder está configurado para permitir el registro, independientemente de la configuración general del sitio. Así que autoriza ​​al registro a través de CB pero seguidamente desactiva el acceso por el com_users. Para el usuario final, todo sigue igual: se accede a la página para crear una cuenta que completa, se envía… y ya está creada la cuenta. Para el script malicioso, cambia todo, porque la página que intenta acceder (com_users) no está activada para la creación de cuentas.

Y para mejorar aún más la protección, sabemos que hay un plugin Captcha para CB. Este Captcha aparece en la página de registro de CB y parece que es muy eficaz.

Título del original: Bloquer les robots; diminuer le nombre d'utilisateurs fantômes
Autor: Christophe Avonture

Visto 14848 veces Etiquetado como Spanish, Administrador
Manuel Rubio

Manuel Rubio

Emprendedor, autodidacta, diseñador, artesano... Encontré el CMS de Joomla buscando soluciones que facilitaran la creación de sitios web allá por el 2008, y desde ese día lo he venido utilizando para realizar proyectos. Cuando descubrí que detrás del proyecto existía una comunidad, me uní a ella para ayudar en lo que pudiera... y en eso estoy :-)