Los robots de los buscadores y la seguridad por oscuridad

Robots, bots, spiders, arañas, pueden llamarlos como quieran, pero lo importante es saber que se trata del software que usan los buscadores y otros sitios para recorrer la web e indexar contenido. Por ende, son a quienes les debemos “decir” que es lo que queremos, o no, indexen de nuestro sitio, y para eso existe el archivo robots.txt.

r2d2 bot

R2D2 tiene mas onda que Asimo

Imagen robada sin escrúpulos de Wikipedia. shhh, botones.

¿Qué hace el archivo robots.txt?

El archivo robots.txt debe ser accesible públicamente y estar ubicado en directorio raíz del host, ej: cibergeek.com/robots.txt. Debido a que es su naturaleza publica muchas veces son indexados por Google y publicados en los resultados.

Éste archivo contiene directivas para indicarle a los bots que es lo que pueden, y no pueden, indexar. Y si bien según el W3C en el archivo robots.txt solo sé debe indicar que es lo que NO se deben indexar mediante la directiva “Disallow”, Google admite la directiva “Allow”, que justamente tiene permite indicar que es lo que se puede indexar.

Además de indicar que, también permite indicar el quien, ya que la directiva “User-agent” tiene como finalidad crear diferentes reglas para los diferentes bots.

¿Hay alguna otra forma de hacerlo?

El archivo robots.txt muchas veces tiene problemas con la granularidad, y es por eso que se puede complementar con la etiqueta “meta“, la cual permite definir en cada pagina si ésta puede ser indexada, además de detalles extras, como si los links de la pagina se deben seguir.

<meta name=”robots” content=”noindex, nofollow”>

Como se habrán dado cuenta, la etiqueta “meta” tiene la desventaja de poder estar presente solo en paginas HTML, y no en recursos como archivos PDF, SQL, etc, y aquí entran en juego los encabezados HTTP (HTTP Headers), los cuales permiten mediante el agregado del elemento “X-Robots-Tag”, incluir en la respuesta del servidor la misma información que se puede especificar en la etiqueta de HTML.

Pueden leer un poco sobre el uso de las etiquetas en la web de NoArchive.

La seguridad por oscuridad y el archivo robots.txt son incompatibles

Y por fin llegamos a lo que quería remarcar, tal vez la introducción fue un poco larga, pero bueno, quería añadir un poco de contexto. El concepto de seguridad por oscuridad se basa en una decisión de diseño que lleva a pensar que la información, si bien es vulnerable, el desconocimiento de la ubicación de la misma le da su seguridad.

Y es cuando el webmaster (que palabra vieja), quiere asegurarse de que los buscadores no indexen la misma cuando la terminan haciendo vulnerable, ya que el archivo robots.txt termina indicando como acceder a eso que muchas veces no se quiere hacer publico, aunque también sirve para evitar que los buscadores indexen paginas que no tienen ningún contenido o las cuales consumen muchos recursos como para ser servidas a un bot.

Por todo esto es que si quieren que algún archivo o servicio que no sea accesible al publico, lo que no deben hacer es incluirlo en el robots.txt. Sino que deben utilizar otras estrategias, como agregar el elemento X-Robots-Tags a los headers, o mejor aún, si se trata de información sensible, no enlazarla desde ningún lado, además de setear correctamente los Headers HTTP, si bien deberían situarla detrás de algún tipo de autenticación, al menos. No vaya a ser que mediante una búsqueda terminen quedando expuestos esos archivos que se esforzaron en ocultar, un Streisand Effect en potencia.

Conclusión (TL;DR)

Si querés ocultar algo y evitar que lo indexen, no lo agregues en el archivo robots.txt. Usá las demás alternativas.

El Internet en Latinoamérica según Netflix

En las ultimas semanas deben haber escuchado hablar del tema de “Net Neutrality“, que traducido sería algo así “Neutralidad de la Red”, y lo que propone es que los datos que circulan por la red sean tratados con la misma prioridad, sin importar a que empresa pertenezcan. Si no lo recuerdan, Netflix era quien había tenido problemas con este tema, ya que al pasar sus datos por las redes de algunos ISP estos se veían afectados por el “Bandwidth throttling”, que básicamente termina limitando la velocidad de los datos a través de la Red.

netflix net neutrality

Después de todos los problemas que tuvo Netflix, decidieron, hace bastante, comenzar a publicar estadísticas sobre los ISP, como para ejercer presión y mostrarle a sus usuarios como variaba el servicios en los distintos proveedores, y estos mismos datos, están disponibles desde enero también para algunos ISP de América Latina. Seguir leyendo »

Protegiendo tus directorios en Apache, ideal para WordPress

Empecemos con un viejo y conocido refrán: “En casa de herrero, cuchillo de palo“. Dicho esto, seguimos con el post, y estén atentos, ya que esto los puede salvar de un aprieto, y es super sencillo, tan sencillo que hasta yo podría hacerlo.

Evitar el listado de directorios en Apache

Seguramente estén pensando ¿A mi para que me sirve esto? Y bueno, no hay mejor forma que ejemplificando, por ejemplo, existen plugins en WordPress que almacenan archivos en la carpeta “wp-content/uploads”, muchos de estos son plugins que hacen backups o permiten descargar listados de emails, así que con un poco de Google-fu pueden llegar a encontrar muchas cosas.

http://www.google.com/#q=%22Index+of+%2Fwp-content%2Fuploads%2Fbackupbuddy_backups%22+zip

Pero los backups son aburridos y no se pueden vender, mejor vamos por un listado de mails.

https://www.google.com/search?q=”Index%20of%20%2Fwp-content%2Fuploads%2Fwp-mailinglist”%20csv

E incluso hay cosas mas interesantes, por ejemplo, el otro día encontré un sitio que vende un plugin para ayudar con el marketing de WordPress a 65 dolares y lo tiene disponible para descargar gratis en la carpeta “uploads”. Les avisé hace mas de una semana y ni siquiera intentaron bajarlo, o al menos cambiar la configuración. Pero bueno, ahora vamos a lo importante, como evitarlo.

Hay 2 formas de evitarlo (en Apache):

  1. Una forma de hacerlo, mas “artesanal”, es poniendo un archivo con el nombre “index.html” (sin comillas) en el directorio en el que quiere evitar el listado. El archivo puede estar vacío.
  2. La forma que recomendaría un sysadmin es utilizando el archivo “.htaccess” y agregando la siguiente linea:

    Options -Indexes
     

    Esto deshabilita el listado en el directorio en donde se encuentra el  archivo “.htaccess” y en todos los subdirectorios que se encuentren por debajo. 

listado directorio apache

Otra forma de hacerlo es con la directiva “IndexIgnore, por ejemplo, para que no se listen los archivos PHP se usa así “IndexIgnore *.php“, si quieren bloquear todo solo escriben el asterisco (wildcard).

Si tienen acceso al archivos de configuración de Apache esto también se puede hacer desde ahí, pero no es la situación mas habitual.

Aprender a programar con Adam Savage de Cazadores De Mitos

Actualmente hay cada vez mas recursos para aprender a programar, y a su vez hay mas gente interesada, pero un problema común es que luego de leer un manual, hacer un curso en alguna de las opciones para aprender y practicar online, como CodeAcademy, los usuarios no saben que hacer y se atascan. Pero no desesperen, porque Adam Savage tiene algunos tips para ustedes, y si bien los escribió pensando en la comunidad “Hazlo tu mismo”, casi todos se aplican a la programación, sobre todo al proceso de aprendizaje.

mythbusters

Los 10 mandamientos de Adam

  1. Hacé algo. Cualquier cosa.
    No es necesario que hagas el nuevo Facebook, empezá por algo sencillo, no esperes a tener la idea de tu vida para empezar a programar. Ojo, si hacés el próximo Facebook inspirado por este post, con un 1% me conformo.
  2. Hacé algo que mejore tu vida.
    Relacionado con lo anterior, no tiene que ser algo para cambiar el mundo, tal vez podés empezar con un pequeño script para automatizar alguna tarea que tengas que hacer, o porque no, hacer una nueva versión de alguna aplicación que no te convence.
  3. No esperes.
    No esperes a ser un guru del lenguaje que estás aprendiendo, cuanto antes empieces mas rápido vas a aprender. Y como en la matemática, en la programación, la practica es fundamental, bueno, tienen bastante en común.
  4. Usá un proyecto para aprender una habilidad.
    Una de las mejores maneras de sentirse motivado es empezar un proyecto que nos interese e incluya lo que sea que quieran aprender. Además, al realizar un proyecto podemos practicar algo más que programación y resolución de problemas, también puede plantearse objetivos y poner fechas, como para ir tomándole el gustito a la planificación.
  5. Preguntá. Pedí ayuda.
    Si bien en Stack Overflow están las respuestas a una cantidad de preguntas, siempre es bueno tratar de conseguir a alguien que quiera enseñarnos y tenga el conocimiento y experiencia suficientes para resolver nuestras dudas, obviamente no es necesario que lo haga en todas las ocasiones, porque con la tecnología no hay nadie que todo lo sepa.
  6. Compartí tus métodos y conocimiento. No mantengas secretos.
    Éste es un punto un poco mas complejo, escribir sobre lo que están aprendiendo es un excelente ejercicio, y hacer tutoriales aún mas, ya que debemos pensar en todas las dudas que tuvimos cuando aprendían, y las dudas que pueden tener quienes lean el tutorial, pero hay que considerar una cosa, si apenas están aprendiendo un lenguaje, framework, paradigma, tómense su tiempo para hacer tutoriales al respecto, o al menos asegúrense de aclararlo.
    Además, en la programación hay algo extra que con las cosas físicas no se puede hacer, y es compartir algo sin perderlo, pueden subir su código gratis a sitios como Github, algo que además, si lo que suben es interesante y está bien hecho, pueden sumar para su curriculum.
    En cuanto a lo de los secretos, si están trabajando en un proyecto con fines comerciales e identifican una funcionalidad que hace diferente a su producto, mediten antes de liberar el código al mundo.Y si comparten código y reciben criticas, siempre que sean fundamentadas, escuchen a quienes los critican y piensen acerca de lo que le dicen, no vayan a ser como algunos de los programadores que andan dando vueltas por ahí que se rehúsan a reconocer vulnerabilidades en su código.
  7. La perdida de entusiasmo y el fracaso son parte del proceso.
    Seguramente en algún punto van a sentir que no pueden continuar, que algo es muy difícil, que configurar x cosa es imposible. Pero no se rindan, busquen, pero si no encuentran nada la documentación es su mejor amiga. Si se traban con algo y tienen otras cosas para hacer, sigan con eso otro, muy a menudo pasa que se nos ocurren ideas para problemas que tuvimos antes sin necesidad de estar pensando en ello.
  8. Medí con cuidado.
    Esta está complicada, pero lo podemos llevar para el lado de la Ingeniería de Requerimientos, pero me parece que va mas allá de alguien que está empezando a aprender programación, bah, muchas veces va mas allá de cualquier persona sin importar su nivel, ya que la volatilidad de lo que quiere la gente es difícil de manejar.
  9. Hacé cosas para los demás.
    Mientras aprendés podes ir haciendo cosas para los demás, una pequeña pagina en HTML+Javascript (no Java) para que tu hijo practique las tablas, una aplicación para que tu mamá tenga todas sus recetas en la PC o también para administrar las facturas de servicios/compras. Hacer éste tipo de cosas puede motivarte al ver la reacción de la otra persona, además, puede hacer que la otra persona te motive, unas palabras de aliento y aprecio no le vienen mal a nadie. ALERTA, no todo es sencillo, y seguramente en algún momento te vas a ligar una puteada porque tu super programa borró una receta, etc.
  10. Usá mas liquido refrigerante.
    Ok, estemm ¿A esta como la pinto? A ver que sale de ésto, es importante que mientras estés en la PC te mantengas hidratado, que apliques la técnica 20-20-20, cada 20 minutos mira un punto a al menos 20 metros por 20 segundos, tus ojos te lo van a agradecer, y si no tenes nada lejos para mirar cerra lo ojos por 30 segundos. Además, cada 1 hora levántate y camina un poco. MANTENÉ LA POSTURA!!

El vídeo de Adam (en inglés).

Si se les ocurre algo mas no duden en dejarlo en los comentarios. Prometo ignorar sus comentarios como los de cualquier otra persona.

Hotsale en Argentina, el comercio electrónico por su segunda oportunidad

Los argentinos somos desconfiados, y con razón, cuando me enteré del Hotsale lo primero que se me vino a la cabeza fue: “Estos hijos de buena madre que se tuvo que dedicar a cosas no tan buenas para mantenerlos van a jugar con los precios cual plastilina”. Mi imagen mental fue algo así.

tira cuetes

¿Se acuerdan de esto?

¿Cuál era el plan?

El plan era simple, armar un crawler para obtener los precios antes del Hotsale, y luego volver a correrlo durante el Hotsale. Desafortunadamente, luego de ver la organización de las paginas, mis victimas fueron Dexter y Garbarino, sí, pobre Don Garbarino, siento que hacer este post es como hacer leña del árbol caído, pero bueno, les traigo datos, datos ricos y baratos. Ojo, también los interprete, puufff, tenemos información, que loco es todo esto. Seguir leyendo »