Archivo de marzo de 2010

Consejos básicos para asegurar una web

Medidas de seguridad básicas:

  • Si instalas un Gestor de Contenidos como Joomla, Drupal, WordPress, … instala las actualizaciones y parches que se publican periódicamente. Además de aplicar medidas de seguridad básicas.
  • Si instalas un componente de terceros, añadéle alguna medida adicional de seguridad. Por ejemplo si es un componente de contacto o formulario, crea un campo de texto y colócalo en una capa <div> oculta, si algún robot de spam completa ese campo (ya que no se visualiza en pantalla), haz que el formulario se envíe al correo electrónico como chivato. Esta técnica se puede aplicar para cualquier formulario.

¿Cómo saber que me atacan?

Puedes poner chivatos en varios sitios de la web, pero desconfía si:

  • Revisando los logs del servidor hay una ip (o un rango de ip) probando toda la web muchas veces al día.
  • Hay una ip que intenta completar los formularios constantemente.
  • Mi sitio ha aumentado de visitas. (Échale un vistazo a los logs, por si acaso)

¿Qué puedo hacer?

  • Lo primero, que no cunda el pánico, si tienes unas medidas de seguridad básicas mediante el fichero .htaccess, el robots.txt, los permisos del servidor, etc… Es solo un aviso, y todavía se puede actuar:
  • Restringe los permisos del servidor y habilitalos solamente en los directorios donde sea necesario escribir. Cambiar permisos a 755 aplicando a todos los subdirectorios y ficheros.
  • Si un componente de terceros necesita permisos en muchos directorios de escritura 777 casi es mejor no instalarlo fuera de un entorno de desarrollo. Es una vulnerabilidad importante en el servidor.
  • Evita usar flash: Hay componentes que quedan muy bonitos (como flash), pero que son tremendamente inseguros, intenta utilizarlos lo menos posible. Existen alternativas en javascript, jquery, mootols, más seguras.
  • Haz pruebas sobre tu sitio web como si fueras un atacante. Aquí tienes programas para hacer pruebas tanto de caja negra como de caja blanca.
  • Haz copias de seguridad semanales o diarias, en función del tráfico del sitio y de las actualizaciones. Esto siempre te permite volver a un estado anterior a la catarsis.

Y sobre todo recuerda: Solo los paranoicos sobreviven...

Este artículo es un poco como las capítulos de las series, que recuerdan la última temporada con mogollón de recortes (hasta he reutilizado la foto), :)

Jquery slider para implementar en un sitio web

La verdad es que con los deslizadores (sliders), se consiguen web mucho más vistosas, que con un simple menú, además nos permite dar relevancia a ciertas secciones de una manera gráfica, constante y no intrusiva.

Uno de los scripts que he probado y más me gusta es el jquery slider de cssglobe, que podéis ver aquí y una extensa lista de ejemplos de uso y funcionamiento:

http://cssglobe.com/lab/easyslider1.7/03.html (presentación de varios formatos)

http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider

Monitorizar la actividad de los usuarios en un sitio web

Si queremos que una web sea usable, intuitiva y con fácil acceso a la información, debemos utilizar herramientas que nos permitan conocer la actividad de los usuarios en nuestra web.  Para mejorar mi web, tengo que tener información sobre la actividad de los usuarios en mi sitio: ¿Cómo interactúan con ella? ¿Les cuesta encontrar la información? ¿Abandonan la página pronto porque no han encontrado la información que esperaban?

Para ello podemos utilizar las estadísticas del sitio, que nos van a dar indicadores muy buenos como páginas más vistas, ficheros más descargados, tiempo de visita por página, combinando esta información con un mapa de zonas calientes (o mapa de actividad), esto nos permitirá optimizar nuestro sitio web para que los usuarios se encuentren más cómodos en la web.

Clickheat es una herramienta de libre distribución que nos permite conocer las (heat maps) zonas calientes de la web (áreas donde los usuarios más clicks realizan), permite instalación en cliente (mediante javascript) e instalación en el servidor. La visualización es muy intuitiva y podemos ver las zonas calientes (zonas más clickadas) de la web de manera totalmente gráfica.

En sitios de mucho volumen de usuarios no recomiendo el uso en todas las páginas, generalmente la página que más información nos dará será la portada, y por lo tanto salvo excepciones con la monitorización de la portada suele ser suficiente para mejorar la disposición del contenido.

Tampoco almacenéis más de 2 click por usuario si el sitio tiene volumen, ya que genera gran cantidad de datos, y si no tenemos una base de datos de un tamaño adecuado puede llenarla en exceso.

  • Clickheat es una herramienta que genera mapas de actividad de los usuarios que nos permiten conocer las áreas donde los usuarios más pinchan (zonas calientes), de manera gráfica, así como la densidad de clicks.
  • Clickheat es una herramienta que complementa otras herramientas de métrica (estadísticas, referencias, palabras clave en las búsquedas…)
  • Existen herramientas analíticas como Openwebanalytics (OWA) que se distribuyen con una implementación de Clickheat, y combinan tanto el mapa de actividad de los usuarios como herramientas analíticas tipo google analytics. Gracias por la recomendación de Openwebanalytics (OWA) a Antonio de ideanet

¿Qué Gestor de contenidos (cms) utilizar para crear un sitio web?

Actualmente estoy preparando el nuevo sitio de patripe.com y obviamente como buena fanática de joomla y drupal que soy ni siquiera me planteé actualizar el wordpress.

¿Porqué? Pues sencillamente porque mis necesidades han cambiado, el nuevo portal va a tener una sección de descargas, tutoriales, y un montón más de funcionalidades y al nivel que quiero, necesitaría toquetear mucho el wordpress, y tengo mayores y mejores conocimientos de joomla o drupal que de wordpress, lo que me permite hacerlo prácticamente  a medida, pero con funcionalidades que me hubiera costado meses desarrollar.

Cuando empezamos con un blog o un sitio pequeño en el que prima el aspecto gráfico, wordpress es una herramienta maravillosa:

A favor:

  • Simple, fácil de instalar, con miles de plantillas gratuitas y muy visuales.
  • Tiene detrás una comunidad activa y un excelente equipo de desarrolladores, que detecta y parchea fallos de seguridad continuamente.
  • Las plantillas son visualmente mucho más atractivas que las de joomla o drupal.
  • No se necesita tener conocimientos de programación, html para crear un blog en minutos.
  • El entorno gráfico de la administración es intuitivo y fácil de manejar.

En contra:

Echo en falta componentes, funcionalidades y extensiones menos gráficas y más enfocadas al desarrollo de aplicativos a medida.

Aconsejado para principiantes.

Joomla

Joomla este gestor de contenidos es idóneo para montar portales que vayan a tener configuraciones y aplicaciones personalizadas para los usuarios, comunidad, descargas, niveles de acceso…

  • En el Directorio de Extensiones Joomla (JED) encontramos todas las extensiones imaginables, tanto bajo licencia comercial como de libre distribución.
  • También tiene una gran comunidad muy activa que publica constantemente traducciones, parches, etc…
  • Se actualiza periódicamente corrigiendo fallos de seguridad rapidamente.
  • Es fácil programar módulos, extensiones y plugin. Abundante documentación técnica.

Dispone de muchos sitios donde se publican plantillas, pero no están tan enfocada gráficamente (siempre la puedes hacer a medida)

En contra:

  • Requiere más tiempo de instalación y conocimientos de gestión de servidores, configuración de permisos, etc…
  • Algunos componentes de terceros pueden contener vulnerabilidades de seguridad.
  • Algunos proveedores de alojamiento (los menos), limitan la instalación de componentes o del propio joomla.

Aconsejado:

Para la creación de portales, comunidades de usuarios o intranetes corporativas, nivel avanzado.

Drupal

Drupal: Este sistema gestor de contenidos es simple y llanamente excepcional.

  • Gran cantidad de extensiones, componentes, módulos…
  • Comunidad muy activa y mucha documentación en el sitio oficial.
  • Altos niveles de seguridad para el sitio web, y de optimización del rendimiento.
  • Configurandólo correctamente se consiguen resultados excelentes.
  • Sistema de nodos ultraflexible, te permite hacer casi cualquier cosa que imagines.

En contra:

  • Hay que tener conocimientos altos para sacarle todo el partido que tiene.
  • El funcionamiento de drupal sigue sus propias normas, y tiene una curva de aprendizaje un poco más elevada para aprender cómo funcionan los nodos y las extensiones.

Aconsejado:

Para la producción de sitios críticos que requieran de altos niveles de seguridad, intranet corporativa, portales complejos. Nivel avanzado.

En definitiva el mejor sistema gestor de contenidos es el que se adapta a tus necesidades.

Después de varias pruebas yo me he decidido por Joomla.

Piwik sistema completo de estadísticas de libre distribución

Por fin recupero la rutina y hoy os recomiendo un completo sistema de estadísticas similar a google analytics, con una diferencia muy importante: como es código de libre distribución puedo modificarlo, y sé lo que sé hace con las estadísticas.

El sistema es muy sencillo de instalar y nos permite tener varios sitios ya que utiliza una cookie para almacenar las estadísticas. La instalación es muy sencilla:

Lo descargamos -http://piwik.org/latest.zip

Lo descomprimimos, lo subimos vía ftp al alojamiento y seguimos las instrucciones de instalación.

Nos permite la configuración de permisos para cada usuario, y las estadísticas a las que tienen acceso, además todos los módulos del tablero son configurables, sin duda una alternativa al arcaico awstats y sobre todo a google analytics de gran hermano.

Dispone de un plugin para joomla 1.5 que nos permite implementarlo en un sitio joomla sin tener que insertar el código en cada página, ni siquiera en la plantilla.

Una maravilla, y sino me gusta pues accedo al código y lo cambio!

Aquí podéis ver una demo del aspecto:

http://piwik.org/demo/index.php?module=CoreHome&action=index&idSite=1&period=day&date=yesterday#module=Dashboard&action=embeddedIndex&idSite=1&period=day&date=yesterday

Aquí podéis descargar el plugin para integrarlo en sitios joomla.

http://www.artd.ch/artd-webdesign-s-blog/compiwik-a-piwik-integration-to-joomla-15.html

http://joomlacode.org/gf/project/piwikjoomla/frs/