Tag: Web

Protocolo de exclusión robots.txt

Desde hace unos años se viene implantando una cultura de rendir cuentas y de la transparencia. Una de las forma más fáciles para mostrar aquellos resultados o datos que hacen considerarse transparente a una organización, es la creación de una web y publicación de datos en la misma. Pero, ¿una web realmente convierte a una organización en transparente? La respuesta inmediata es no del todo.

Por aquí no pases

En la red existe un protocolo de exclusión de robots para evitar que ciertos bots que analizan los sitios web u otros robots que investigan todo o una parte del acceso de un sitio Web, público o privado, agreguen información innecesaria a los resultados de búsqueda. A tal efecto en la raíz de cualquier sitio web, es posible especificar un archivo "robots.txt" con dichas exclusiones. El fichero robots.txt es un archivo de texto que dicta unas recomendaciones para que todos los crawlers y robots de buscadores cumplan.

robots-txt

Se dice que son recomendaciones, porque 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. Este protocolo es consultivo y se confía en la cooperación de los robots del sitio Web, de modo que marca una o más áreas de un sitio fuera de los límites de búsqueda con el uso de un archivo robots.txt, aunque éste no necesariamente garantice aislamiento completo.

Algunos administradores de sitios Web utilizan el archivo robots.txt para hacer algunas secciones privadas, invisibles al resto del mundo, pero dado que los archivos están disponibles de forma pública, su contenido podría ser visto de todas maneras por cualquier persona con un navegador Web y conocimientos medianamente avanzados. En algunos casos el incluir un directorio en este archivo, anuncia de su presencia a posibles hackers.

Esta práctica además puede conllevar la intención de no cachear e indexar ciertos contenidos en la Red a fin de no dejar huella en Internet. A día de hoy Google (con su Googlebot) cachea la información de cualquier web y es posible acceder a la información incluso aunque la web esté caída. Google actualiza y/o elimina la información cacheada de una web según evoluciona el sitio web. Además Google utiliza distintos bots rastreadores para cada tipo de contenido o actividad, los cuales hacen más óptimo la indexación y cacheo de las webs.

Para cualquier resultado web en Google, existe la posibilidad de entrar a la versión cacheada desde la flecha que apunta hacia abajo al final de la dirección.

Google_cache

Por otro lado existen servicios como Wayback Machine que cachean e indexan webs, de tal forma que es posible acceder al estado de una determinada web para una fecha concreta. Digamos que hace fotografías del estado de los sitios web y los va guardando para su consulta en un futuro, como si de un diario se tratase.

El fichero robots.txt

Estructuralmente el fichero robots.txt tiene esta pinta:

User-agent: *
Disallow: /gestion/
Disallow: /imgcache/
Disallow: /demos/
Disallow: /demoweb/
Disallow: /boletines/
Disallow: /grtp/
Disallow: /baliabideak/
Disallow: /dir_phplist/
Disallow: /adjuntos/
Disallow: /partekatzeko/
Disallow: /phplist/
Disallow: /swf/

El campo User-agent especifica los bots que deben respetar el fichero. En nuestro ejemplo, el * quiere decir que todos lo deben cumplir. A continuación se añade un linea con el campo Disallow para cada directorio o recurso que no queramos que sea indexado y cacheado. Del mimos modo existe el campo Allow si se quiere explicitar algún directorio o recurso, pero no se usa ya que por defecto la mayoría de bots rastreará todo el contenido que encuentre, a no ser que encuentre alguna exclusión (disallow). Es fácil encontrar estos archivos en muchas webs, añadiendo /robots.txt a la dirección principal.

Ejemplo: http://www.google.es/robots.txt

Podéis encontrar más información sobre el fichero robots.txt en la siguiente dirección:

http://www.emezeta.com/articulos/robots-txt-todo-lo-que-deberia-saber

Conclusión

Volviendo a la pregunta con la que habríamos el artículo, una web no quiere decir transparencia por sí misma, aunque éste sea su fin último, puesto que el uso de un fichero robots.txt para ocultar recursos y directorios  a ojos robots de indexación, propicia no dejar huella y dificultar la trazabilidad de un recurso a lo largo de su existencia en la Red.

Clef – Inicio de sesión fácil y seguro

Todos los días manejamos un infinidad de accesos distintos para servicios web. Por seguridad deberíamos usar claves distintas para cada uno de los servicios en los que nos registramos, pero lo cierto es que terminamos usando variaciones de una misma clave o simplemente la misma. Esto a todas luces entraña su riesgo, puesto que desvelar una clave en cualquiera de los muchos servicios que usamos, conlleva comprometer el resto de accesos web. Puedes comprobar si este es tu caso gracias a servicios como "Have I been pawned?":

https://haveibeenpwned.com

clef_desktop

Clef es un servicio gratuito de autenticación e inicio de sesión único, simple y seguro. Se trata de un servicio que hace uso de tu smartphone para poder abrir la sesión de tus servicios web.

https://getclef.com

Clef se instala en tu móvil Android o IOS  y queda protegida su apertura mediante un PIN que pondremos durante su instalación. A partir de este momento podremos unificar todos los accesos usando Clef.

Clef simplifica el acceso y lo hace más rápido y cómodo, usando dos credenciales para idetificarnos. Por un lador el propio móvil, que se usa para escanear el código que se nos presenta, y el PIN que es algo que sabemos. De esta forma un elemento cotidiano que todos llevamos encima como es el smartphone, se convierte junto a un PIN, en tus credenciales de acceso para todos aquellos servicios web que estén integrados con Clef. Este modelo de autenticación de dos factores es un modelo clásico, siendo similar al de las tarjetas de crédito, que para hacer uso de las mismas es necesario la tarjeta (algo que tenemos) y el PIN (algo que sabemos).

Una vez autenticados en un servicio web, podemos controlar la caducidad de la sesión desde nuestro móvil o cerrarla, si por ejemplo se nos olvidó cerrarla en el equipo donde la abrimos. Además, si en algún momento perdemos el móvil siempre podremos desactivar Clef desde la siguiente dirección:

https://getclef.com/deactivate

Para que quede más claro, el siguiente vídeo ilustra su funcionamiento:

También es posible probar su funcionamiento en la siguiente dirección:

https://getclef.com/tutorial

Aquellos que tengan dudas sobre la seguridad del servicio, a continuación se facilitan los siguientes enlaces, accesibles desde la propia web de Clef:

https://getclef.com/security

https://getclef.com/static/dist/pdf/whitepaper.pdf

Es posible usar Clef en tu blog WordPress, instalándolo como plugin. De esta forma se dota a los usuarios de una manera más simple y segura de acceso al blog, además de eliminar los ataques de fuerza bruta por completo, tan extendidos en el mundo de WordPress. También es posible usar Clef junto la extensión Waltz para navegadores Chrome, para usar Clef como sistema de autenticación para cualquier servicio web. Waltz es además Open Source y su código fuentes puede ser encontrado en Github.

SyntaxHighlighter

SyntaxHighlighter es un completo coloreador de sintaxis desarrollado en JavaScript. Al ser un desarrollo de JavaScript la ejecución se realiza en el lado del cliente, en el navegador, lo que no añade carga extra al servidor.

Oficialmente soporta la detección de sintaxis para los siguientes lenguajes:

Brush nameBrush aliasesFile name
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
ColdFusioncf, coldfusionshBrushColdFusion.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
Erlangerl, erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js

El proyecto es Open Source con licencia MIT:

https://github.com/syntaxhighlighter/syntaxhighlighter

Y la página oficial es la siguiente:

http://alexgorbatchev.com/SyntaxHighlighter

Si estás interesado en integrarlo en tu WordPress, existen plugins como SyntaxHighlighter Evolved que integran SyntaxHighlighter.

A continuación dejo un ejemplo de código en JavaScript, para mostrar el funcionamiento de SyntaxHighlighter:

 

var x = myFunction(4, 3);

function myFunction(a, b) {
    return a * b;
}