viernes, 27 de diciembre de 2013

Feliz Navidad

Si, este es mi belén de este año y con el quiero felicitaros a todos la Navidad y que paseis una grandisimo 2014.
Como todos los años estos días de fiesta siempre encontramos un rincon en el tiempo para pensar en esos propositos para el nuevo año, ya sabeis los tópicos suelen ser: adelgazar, dejar de fumar, aprender idiomas...
Yo suelo hacer todos los años una lista con los propositos y objetivos que me pongo, el año pasado me pasé bastante así que la del próximo es mas cortita, para poder cumplirlos todos.
- Acabar con el curso universitario en el que me metí el año pasado.
- Seguir haciendo que Gr2Dest sera más grande y un grupo de referencia para quellos que queremos aprender seguridad.
- Más y más formación, ya me he apuntado a los dos primeros cursos de Java y programación Android.
- Presentaros a todos el proyecto que tengo entre manos (una pista, es un chico llamado Grode jeje).
- Y algun proyectillo personal más del os hablaré en otro momento.
Ya os contaré si lo consigo.
Lo dicho a todos aquellos que os pasais por aqui, a todos los del grupo y a todo los que por accidente leais esto: Feliz Navidad y prospero 2014.

martes, 10 de diciembre de 2013

Robots.txt escondiéndonos de los buscadores



Muchos de los que lean esto recordarán los viejos buscadores (ya desaparecidos en su mayoría) como era el de terra.es, ozu.com, ole.com... Cuando Internet comenzó a crecer fue de forma exponencial, las web pasaron a contarse por cientos de miles en un lapso de tiempo muy corto.
Esto planteó el problema de catalogarlas y, para los que vivimos esa época y conocimos esos buscadores recordareis que existían unas webs que te daban de alta la tuya en cientos y miles de buscadores a la web. Siempre fallaban y al final de cientos solo daban de alta en una docena de ellos y el resto, te tocaba a mano.
Era una locura poder insertar tu web en los miles de buscadores que existían. Creo que esos fueron los comienzos del SEO, dar de alta tu web en miles de buscadores.
Pero la cosa cambió cuando llegó Google, ya no era necesaria esa locura, solo tenías que darte de alta en uno y muy seguramente, para cuando fuera a hacerlo, el ya te había encontrado a ti.
Antes de que te dieras de alta ya figuraba tu web en su buscador pero el problema es que figuraba  ¡Toda tu web! ¿Y si no querías que ciertas partes salieran es sus búsquedas? La solución que se dio a este problema se llama robots.txt

¿Qué es robots.txt exactamente?

Es un archivo de texto que sigue una notación estándar mediante el cual indicamos a las arañas de los buscadores que partes de la web no han de incluir en sus directorios.
Una vez dicho esto has de tener en cuenta que:
- Que no lo incluyan no quiere decir que no lo puedan visitar, hay crawlers que sí lo visitan aunque no lo incluyen.
- Existen crawlers que no pertenecen a buscadores, son privados y, normalmente, sus intenciones no son nada buenas. Éstos no harán ni caso de tu archivo robots.
- Hay una notación estándar que la mayoría de crawlers siguen, pero también existen notaciones no estándar que muchos entienden, es tu responsabilidad usarla, luego no te quejes de que no te hacen caro las arañitas.

¿Cómo creo mi archivo robots?

El archivo robots es un txt que has de dejar en el directorio raíz de tu aplicación web, es ahí donde irán las arañas a buscarlo, si lo mueves no sabrán encontrarlo.
La dirección donde tendría que estar tu robots, por ejemplo:
http://www.miwebmaravillosa.com/robots.txt
Dejando ahí tu archivo los crawlers podrán acceder al mismo y leerlo. Los crawlers... y cualquiera que quiera verlo, por supuesto.
Y aquí es donde está la gracia o desgracia de el archivo robots y es que cualquiera puede acceder al mismo solo poniendo la dirección (como el ejemplo que te acabo de dar) en su navegador. Por si aún no eres consciente de porque esto puede ser peligroso, piensa que vas a crear una archivo de robots porque hay partes de tu web que no quieres que se indexen y visiten por lo que, si no lo haces con un poco de cuidado, puedes estar haciendo un detallado directorio de las partes sensibles de tu web a cualquiera que quiera visitarlo.
No nos asustemos aún, se pueden hacer algunas cosillas para que robots sea todo lo último que ha de ser.

Creando nuestro robots

El estándar definido para este archivo es muy sencillo. Veámoslo con algunos ejemplos:
---
User-agent: *
Disallow: /
----
User-agent indica sobre quien aplica el robots, en este caso el * dice que esto aplica para todos los crawlers que entren en tu web.
Disallow: / está diciendo que no visiten ni indexen nada de tu web. Les has prohibido el paso.
----
User-agent: *
Disallow:
-----
Este es el caso contrario, así se indica que todos los crawlers existentes, pueden acceder a toda la web.
Puede suceder que, en ocasiones, no queramos que unos buscadores indexen nuestra web pero otros si, por lo que se pueden indicar diferentes User-agent, veamos un ejemplo:
---
User-agent: Googlebot
Disallow: /lugar/
Disallow: /comunicar.php

User-agent: Slurp
Disallow: /lugar/
 
User-agent: Exabot
Disallow: /
 
User-agent: Speedy
Disallow: /
---

Este es más complejo, podemos ver diferentes casuísticas dependiendo de que crawler nos visite:
- GoogleBot tiene prohibido visitar la carpeta lugar, y todo lo que exista dentro de la misma. Al igual que tiene prohibido el archivo comunicar.php.
- Slurp solo tiene prohibido entrar en la carpeta lugar y todo lo que esta contiene.
- Mientras que Exabot y Speedy tienen prohibido entrar en toda la web.

Podéis ver se pueden definir según que crawlers el acceso de los mismos, no tiene ningún límite.
Existen infinidad de crawlers, os dejo aquí algunos listados que os pueden ayudar para cuando queráis definir vuestros robots:

Ya os habia comentado antes, que cualquiera puede acceder a vuestro archivo de robots por lo que un archivo de robots que contenga muchos archivos deshabilitados, en malas manos, se convertirá en un directorio de "sitios a visitar", por ejemplo, en el robots de http://www.senado.es/robots.txt podemos ver lo siguiente:
---
User-agent: *
Disallow: /web/wcm-contrib/
Disallow: /web/wcm-design/
Disallow: /web/wcm/support/login/wcm-login.jsp
Disallow: /web/wcm/support/login/j_security_check
Disallow: /cgi-bin/
Disallow: */detalleiniciativa/
Disallow: */expedientappendixblobservlet/
Disallow: */expedientdocblobservlet/
Disallow: */fichasenador/
Disallow: */resultadobuscador/
Disallow: */*senstream*
Disallow: /legis9/publicaciones/html/textos/CG_B015.html
Disallow: /legis9/publicaciones/pdf/cortes/bocg/CG_B015.PDF
Disallow: /legis9/publicaciones/html/textos/CG_B100.html
Disallow: /legis9/publicaciones/pdf/cortes/bocg/CG_B100.PDF
Disallow: /legis9/publicaciones/pdf/cortes/bocg/CG_B103.PDF
Disallow: /legis4/publicaciones/pdf/senado/bocg/I0019.PDF
Disallow: /legis4/publicaciones/pdf/congreso/bocg/E_017.PDF
Disallow: /legis4/publicaciones/pdf/cortes/bocg/CG_B019.PDF
Disallow: /legis3/publicaciones/pdf/congreso/bocg/E_210.PDF
Disallow: /legis3/publicaciones/pdf/senado/bocg/I0342.PDF
Disallow: /legis2/publicaciones/pdf/congreso/bocg/E_118.PDF
Disallow: /legis3/publicaciones/pdf/senado/bocg/I0347.PDF
Disallow: /legis2/publicaciones/pdf/senado/bocg/I0140.PDF
 ---

De este robots podemos sacar varias conclusiones:
- ¿Quien que haya entrado en este archivo no va acceder a visitar esos PDF de forma inmediata? Colocarlos ahí es como decir a alguien "Yujuuu entra a ver que tengo aquí escondido" La única forma de que el crawler y los ojos curiosos no vean esa información a través de nuestro robots sería unificar esos archivos dentro de una carpeta y deshabilitar la misma, algo así:
---
User-agent: *
Disallow: /web/wcm-contrib/
Disallow: /web/wcm-design/
Disallow: /web/wcm/support/login/wcm-login.jsp
Disallow: /web/wcm/support/login/j_security_check
Disallow: /cgi-bin/
Disallow: */detalleiniciativa/
Disallow: */expedientappendixblobservlet/
Disallow: */expedientdocblobservlet/
Disallow: */fichasenador/
Disallow: */resultadobuscador/
Disallow: */*senstream*
Disallow: /textos_aburridisimos
 ---

- Hay ordenes no estándar, una de ellas es ese * delante de las carpetas. El riesgo que supone no hacer los robots estandarizados es que no todos los crawler lo soportan por lo que esos directorios seguro podemos encontrarlos en algún buscador indexados y visitados.
Tened cuidado con vuestro robot, sed un poco pícaros.

Extensiones más habituales no estándar

En Wikipedia se recogen muy bien las extensiones que más os podeis encontrar no estandarizadas, veamoslas con un ejemplo muy simpatico el de http://blogs.lavozdegalicia.es/robots.txt es un poco extenso pero os gustará:
---
#
# robots.txt para tu blog en WordPress.
#
# Usar bajo propia responsabilidad, que nos conocemos }:)
# http://sigt.net/archivo/robotstxt-para-wordpress.xhtml
#
# Primero el contenido adjunto.
User-Agent: *
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Disallow: /wp-includes/
Disallow: /wp-admin/
# Tambi�n podemos desindexar todo lo que empiece
# por wp-. Es lo mismo que los Disallow de arriba pero
# incluye cosas como wp-rss.php
Disallow: /wp-
#
# Sitemap permitido, b�squedas no.
#
Sitemap: http://tu-web/sitemap.xml
Disallow: /?s=
Disallow: /search
#
# Permitimos el feed general para Google Blogsearch.
#
# Impedimos que permalink/feed/ sea indexado ya que el
# feed con los comentarios suele posicionarse en lugar de
# la entrada y desorienta a los usuarios.
#
# Lo mismo con URLs terminadas en /trackback/ que s�lo
# sirven como Trackback URI (y son contenido duplicado).
#
Allow: /feed/$
Disallow: /feed
Disallow: /comments/feed
Disallow: /*/feed/$
Disallow: /*/feed/rss/$
Disallow: /*/trackback/$
Disallow: /*/*/feed/$
Disallow: /*/*/feed/rss/$
Disallow: /*/*/trackback/$
Disallow: /*/*/*/feed/$
Disallow: /*/*/*/feed/rss/$
Disallow: /*/*/*/trackback/$
#
# Lista de bots que suelen respetar el robots.txt pero rara
# vez hacen un buen uso del sitio y abusan bastante
#
User-agent: MSIECrawler
Disallow: /
User-agent: WebCopier
Disallow: /
User-agent: HTTrack
Disallow: /
User-agent: Microsoft.URL.Control
Disallow: /
User-agent: libwww
Disallow: /
User-agent: BLP_bbot
Disallow: /
#
# Slurp (Yahoo!), Noxtrum y el bot de MSN obligandoles
# a reducir la marcha. El valor es en segundos
#
User-agent: noxtrumbot
Crawl-delay: 50
User-agent: msnbot
Crawl-delay: 50
User-agent: Slurp
Crawl-delay: 50
User-agent: Googlebot
Crawl-delay: 30
# para evitar ataque desde http://www.80legs.com/webcrawler.html
User-agent: 008
Disallow: /
---

El archivo está perfectamente echo y muy simpáticamente comentado, os explico:
- Sitemap: Ya profundizaré mucho más sobre este tema en otro post. Es el mapa de la web, al contrario que robots.txt, sitemap.xml indica a los crawlers que SI quieres que visiten e indexen. Es esencial para SEO y con ello facilitas que las páginas que incluyas en ese archivo sean más rápidamente indexadas.
- Allow: Esta etiqueta habilita que pueda entrarse en una archivo o directorio. Se ha de situar encima de su correspondiente Disallow ya que la única utilidad que tiene esta orden es habilitar cierta parte de lo que has deshabilitado, observa el ejemplo:
---
Allow: /feed/$
Disallow: /feed
---
 
Deshabilita entrar en la carpeta feed pero ha habilitado correctamente que el contenido $ dentro de esa carpeta sí pueda ser visitado. Recuerda si pones Allow después de Disallow no tendrá mucho sentido.
- Crawl-delay: Los crawlers no descansan, es una de las ventajas de ser una máquina, trabajan tanto que, algunas veces, nos saturan a visitas. Con esta orden le indicamos cuantos segundos han de pasar, como mínimo, hasta que pueda volvernos a visitar. Cuando tu sitio crece agradeces esta etiqueta.

Os podéis divertir enormemente mirando los robots de las webs ahora que ya entendéis mejor que hacen.
Si queréis mas información sobre robots:
http://www.robotstxt.org
http://en.wikipedia.org/wiki/Robots.txt

Si queréis ver robots probad con esta orden en google: inurl:robots.txt filetype:txt

Casos curiosos

Antes de acabar y sabiendo que se ha alargado enormemente este documento sobre robots me gustaría compartir con vosotros algunos casis curiosos.
---
User-agent: *
Disallow: /us/heroes/ <<<¿Será el directorio de las tarjetas para super heroes?
Disallow: /us/rwd/
Allow:   << ¿Que habilitas, el vacío?
 ---

El conocidísimo robots de la SGAE, esto habla por sí mismo:

---
User-agent: *
Disallow:/portal/
Disallow:/portal/
Disallow:/wp-*
Disallow:/?SGAE=LADRONES=MONOPOLIO
Disallow:/?ladrones
Disallow:/?mafiosos
Disallow:/?
Disallow:/?*
Disallow:/author/
Disallow:/category/
Disallow:/portal/
Disallow:/search/
Disallow:/home2/
Disallow:/sg0-no-tocar/
Disallow:/sg1-no-tocar/
Disallow:/sg2-no-tocar/
Disallow:/sg3-no-tocar/
Disallow:/sg4-no-tocar/
Disallow:/sg5-no-tocar/
Disallow:/sg-5-no-tocar/
Disallow:/sg-4-no-tocar/
Disallow:/sg-3-no-tocar/
Disallow:/sg-2-no-tocar/
Disallow:/sg-1-no-tocar/
Disallow:/sg*
Disallow:/search/search-es.jsp?texto=<a href="">ladrones</a>
Disallow:/search/search-es.jsp?texto=%3Cscript%3Ealert(%22efectivamente,%20somos%20unos%20ladrones%22);%3C/script%3E
Disallow:/search/search-es.jsp?texto=%3Ch1%3ESomos%20unos%20ladrones%20salgamos%20primeros%20en%20google%20o%20no%3C/h1%3E
Disallow:/search/search-es.jsp?texto=%3Ca%20href=%22%22%3Eladrones%3C/a%3E
Disallow:/?utm_source=lasindias.info/blog
---

El archivo robots de http://www.fuerteventura2000.com/robots.txt, por dios no lo uséis para estas cosas¡¡¡ (Lo he copiado parcialmente)

# Google
User-agent: Googlebot
# Bloquear Directorios
Disallow: /Aplicacion/
Disallow: /Conections/
Disallow: /picts/
Disallow: /includes/
Disallow: /privado/
Disallow: /noticias/
Disallow: /flash/
Disallow: /cursos/catalogo/
Disallow: /cursos/cursos_para trabajadores/fichas_cursos/
# Bloquear archivos
Disallow: /LEEME_MUY_IMPORTANTE.txt << Te haremos caso
Disallow: /accesibilidad.php
Disallow: /aviso_legal.php
Disallow: /*.swf$
Disallow: /*.gif$
Disallow: /*.png$
Disallow: /*.jpg$
Disallow: /blog/wp-login.php
Disallow: /*?
# Permitidos
Allow: /index.php
Allow: /sitemap.xml

Archivo http://www.fuerteventura2000.com/LEEME_MUY_IMPORTANTE.txt que tanto nos dice que leamos:

*******************************************************
¡¡¡¡MUY IMPORTANTE!!!!
*******************************************************
ES MUY IMPORTANTE POR EL BUEN FUNCIONAMIENTO DEL SITIO
QUE NO SE MODIFIQUEN NINGUNO DE LOS SIGUIENTES ARCHIVOS
Y CARPETAS CONTENIDOS EN ESTE DIRECTORIO:

-blog
-contacto
-css
-css
-cursos
-documentacion
-error
-flash
-includes
-newsletter
-noticias
-picts
-privado
-scripts
-sobre_nosotros

accesibilidad.php
aviso_legal.php
contacto.php
empleo.php
index.php
mapaweb.php
servicios_a_empresas.php
robots.txt
sitemap.xml

*******************************************************
SI NECESITAN SUBIR ARCHIVOS AL SERVIDOR PÓNGANSE EN
CONTACTO OBLIGATORIAMENTE CON XXXX@fuerteventura2000.com

¡¡¡¡OBLIGATORIAMENTE!!!!
------------------------

*******************************************************
ESTO NO ES NINGÚN JUEGO Y LOS CAMBIOS DE ARCHIVOS QUE
ESTÁN OCURRIENDO ÚLTIMAMENTE POR PARTE DE TERCERAS
PERSONAS NO IDENTIFICADAS ESTÁ AFECTANDO NEGATIVAMENTE
A LA IMAGEN DE LA EMPRESA. A PARTIR DE HOY TODAS LAS
INCURSIONES EN EL SITIO DE TERCERAS PERSONAS NO
INFORMADAS A CARLOS SERÁN PUESTAS EN CONOCIMIENTO DE
LA DIRECCIÓN.
*******************************************************
*******************************************************

Ok, seremos buenos e informaremos a Carlos si tocamos algo. Por cierto, seguro que esto no afecta negativamente a la imagen de la empresa. Borrad eso por dios¡

viernes, 6 de diciembre de 2013

Sesiones y más sesiones de Gr2Dest

El grupo de estudio va viento en popa, cada día crecemos más en miembros y contenidos.
Hoy os traigo todos los videos de las últimas sesiones que no he subido 9,10,11 y 12
Os invito nuevamente a uniros al grupo en Meetup, aquí leneis el link: http://www.meetup.com/Gr2Dest-Grupo-de-estudio-de-seguridad-informatica/
Así podreis acudir a las seisones y tener los videos en cuanto salen, os dejo con todos los que tenía pendiente subir: