Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Aporte:  Evitar descarga página web con comando Wget.
#1
Los que usamos Linux sabemos la existencia de un comando de consola mediante el cual te puedes bajas una web completa de manera recursiva, esto es, todo su contenido con todos los directorios que contiene y archivos. Este comando es Wget.

A los que tenemos un sitio web no nos puede hacer gracia que se puedan bajar todo su contenido, imágenes, archivos o puede que tengamos zonas privadas que wget se las saltará y también se las bajará.

Hay dos maneras de evitarlo, editando el archivo robots.txt, la menos recomendable, o editando el archivo .htaccess.


robots.txt

Según wikipedia un archivo robots.txt en un sitio web funcionará como una petición que especifica que determinados robots no hagan caso a archivos o directorios específicos en su búsqueda. Esto puede realizarse, por ejemplo, para dejar fuera de una preferencia los resultados de una búsqueda avanzada, o de la creencia que el contenido de los directorios seleccionados puede ser engañoso o inaplicable a la clasificación del sitio en su totalidad.

Para evitar que wget se descargue el sitio web completo tendremos que añadir esta línea

Código:
User-agent: wget
Disallow: /

Si nos da los mismo que se bajen la web, pero hay directorios que no queremos que se bajen se puede indicar también

Código:
User-agent: wget
Disallow: /zona_privada/

Pero este método tiene una contra, si se es un usuario normal posiblemente funcionará, pero si el que se quiere bajar la web ya es un poco mas conocedor de como funciona wget, sabrá que se puede saltar esta restricción con este línea

Código:
wget -e robots=off --wait 1 http://tu_sitio.com


Con esto no hará caso al archivo robots.txt.




.htaccess

 Para evitar la descarga indeseada de nuestro sitio web de forma mas segura editaremos el archivo .htaccess añadiéndole las siguientes líneas

Código:
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww|curl|wget|python|nikto|scan).* [NC,OR]
RewriteRule ^(.*)$ - [F]

Con esto no solo evitaremos el uso de wget sino también el uso de otros comandos, como curl.
La última linea llevará al que quiere bajar el sitio web a un mensaje de denegado el acceso.

Si lo que queremos es ponerlo uno a uno y todo el listado de los bad bosts mas conocidos, sería así

Código:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} ^wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Otro_bad_bot [OR]
...
...
RewriteRule ^.* - [F,L]

Los "..." significa que vamos metiendo las lineas que queramos.

Una lista de los bad bots mas conocidos AQUI
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)