Archivo de la categoría ‘Sistemas de Administración de Contenidos (CMS)’

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), :)

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/

Generar enlaces (url’s) amigables en Joomla 1.5

Si en algo se caracteriza la web 2.0 es en la empatía, es decir que tanto desarrolladores como diseñadores nos pongamos en el lugar del usuario, que hagamos webs más sencillas de navegar, más fáciles de recordar y que fidelicen al usuario.

Debido a que los Sistemas de Administración de Contenidos (CMS), generan los contenidos de manera dinámica, es posible que nos encontremos con enlaces (url’s) díficiles de recordar. Si usamos el sentido común, lo lógico es que la web se llame: http://www.misitio.com/descargas y no http:www.misitio.com/index.php?componente=upload&category=2&id=3, que sería la url que nos mostraría joomla, entre las razones por las cuales debemos hacer un enlace amigable también se  incluyen el posicionamiento para que google devuelva nuestra web como resultado de una búsqueda hecha por el usuario y la facilidad del usuario para recordarlo.

Los enlaces amigables se consiguen a través del fichero htaccess y activando un par de opciones en la configuración global. En Joomla hay muchas maneras de conseguirlo la más simple es tener un alojamiento con el módulo de apache mod_rewrite activado. Renombrar el archivo htaccess.txt a .htaccess que se encuentra en el raíz del sitio tras una instalación joomla y en la página de configuración global (entrando en el panel de administración del sitio web) activar las siguientes opciones:

  • URLS amigables para motores –> Sí
  • Usar apache mod_rewrite –> Sí
  • Agregar el sufijo a las url´s –> Este parámetro mostrará los enlaces como http://misitio/descargas o http://misitio/descargas.html ó htm, o la que le queramos poner, esto se configura en el htaccess.
Parámetros de optimización de SEO
URLs amigables para motores de búsqueda
Usar Apache mod_rewrite
Agregar el sufijo a las URLs

Manual de instalación de un sitio con drupal

drupalEn mi lista de cosas pendientes, tenía publicar el manual de drupal que hice para webmasterlibre. Fue una serie de artículos en el que se explica paso a paso una instalación drupal, la instalación de módulos, extensiones, plantillas, y una configuración básica de seguridad para sitios en explotación. Así que una cosa menos para hacer, aquí os dejo el manual y un enlace a los artículos relacionados.

Los artículos relacionados:

http://www.webmasterlibre.com/2009/05/06/instalando-drupal/

El enlace al manual en pdf:

http://patripe.com/wp-content/uploads/2009/10/manual_instalacion_drupal.pdf

Integrar los usuarios de moodle con Joomla 1.5

moodleSi tenemos un sitio web en Joomla y además disponemos de un aula virtual gracias al maravilloso moodle, existe una manera de compartir los usuarios de Joomla y los de moodle, es decir que los usuarios de moodle se pueden autentificar utilizando el usuario que utilizan para el portal. De esta manera la integración es total, y nos permite facilitarle la vida a los usuarios, ya que de lo contrario deberían utilizar un usuario para acceder a nuestra aula virtual moodle, y otro para joomla, que podrían tener claves diferentes, y esto es díficil de recordar.

En primer lugar si el sitio es grande deberiáis instalar Community Builder para la gestión de los usuarios y los permisos.

1. Accedemos a moodle como usuario administrador :

Administración Usuarios Autenticación Usar una base de datos externa

host: Índicamos el servidor de la base de datos (localhost o la dirección ip del gestor de la base de datos donde tenemos instalado Joomla)

Configuración conector base de datos externa

En la sección de script de sincronización con el cron

Hay tres opciones: mantener interna, suspender interna, borrado.

En entornos de explotación recomiendo elegir la opción suspender interna, ya que si el usuario moodle existe en joomla con el mismo nombre, suspende la autentificación con moodle y utiliza la autentificación joomla para ese usuario: Por ejemplo admin. Además podemos comprobar si la integración ha sido correcta para realizar el borrado de usuarios posterior. Ya que si eliminamos los usuarios se realizará un borrado completo

Las demás opciones se utilizan para realizar sincronización con los datos del usuario.

Recordar que el conector usar una base de datos externa se tiene que encontrar habilitado (se hace pulsando sobre el icono de ojo)

Si tenemos un desarrollo grande, es recomendable utilizar también la sincronización de las matriculaciones. Esto lo podremos configurar desde moodle.

Fidelizar a un usuario utilizando diferentes proveedores de identidad

Una de las cosas que la web 2.0 sin duda va a cambiar es la forma en la que los usuarios acceden al sitio, permitiendo identificarse con proveedores externos (facebook, msn, yahoo, msn…). Como usuaria estoy harta de rellenar el mismo formulario una y otra vez para ver las imágenes de la cena con mi cuadrilla en hi5, facebook, msn, gmail, yahoo….

Los regist1251059699_icontexto-user-web20-twitterros en sitios pequeños, son incómodos para el usuario, que maneja tantas identidades que al final hacer otro registro en un sitio web para acceder a contenidos especializados es una barrera a la navegación y una mala experiencia para el usuario, harto de tener que crear una cuenta para cada servicio: flickair, facebook, msn, myspace, hi5…

Se acabó el tiempo de fidelizar al usuario mediante crear una cuenta en el sitio (aunque esto se pueda hacer igualmente), si integramos la identificación con diferentes proveedores conseguiremos:

  • 1251059696_icontexto-user-web20-facebookEvitarnos problemas en la administración del sitio web (menos carga en la parte de la administración de usuarios)
  • Fidelizar a nuestros usuarios eliminando la barrera psicológica que supone crear otro usuario, ya que si integramos a los grandes proveedores, probablemente el 90% de los usuarios tendrán un usuario facebook, gmail, msn, etc… y no tendrán que completar ningún formulario, y para el 10% restante lo ofreceremos la posibilidad de crear un cuenta de usuario.

1251059683_icontexto-user-web20-myspaceAl fin y al cabo lo importante ahora no es tener muchos usuarios y muchos menos con los lectores de marcadores dinámicos que permiten a nuestro asiduo visitante leer las noticias, sin tener que ver ni siquiera la publicidad del sitio. ¿Entonces dónde está el negocio? En la información que provee el usuario sobre lo que más le interesa, el prestigio, el asesoramiento…El número de visitas, aunque no sean usuarios con clave y contraseña.

Facebook es el primero de los grandes que se ha dado cuenta de esto y ofrece amplia documentación y facilidades para su integración en otros sitios, no le importa que el usuario visite otros sitios al final vuelve a la nave nodriza a poner sus fotos, aplicaciones, etc…

Para joomla:

http://www.cmsmarket.com/extensions-directory/social+networking/community/jfbconnect

Para experimentar un poco:

http://developers.facebook.com/connect.php

Por la parte de los desarrolladores, la única parte con la que tendremos especial cuidado será en la transferencia de estos datos desde nuestro sitio web al del proveedor,  manejar estos datos de una manera segura, utilizando conexiones encriptadas para evitar la filtración a ningún otro sitio, al fin y al cabo, como usuarios exigimos nuestro derecho a la privacidad en la navegación.

Planificación de un sitio utilizando joomla 1.5

1248893922_Project Plan - Gant ChartPara crear una página web con Joomla, hay que tener una planificación previa de los contenidos que va a haber en el sitio, componentes y módulos necesarios.

Obviamente los componentes del núcleo, que vienen en una instalación por defecto: encuestas, contacto, enlaces, se quedan muy escasos para webs con más funcionalidades. En otro artículo comenté los componentes que considero necesarios para crear un sitio joomla 2.0.

Para realizar un sitio con Joomla necesitaremos tener bien definido el tipo de contenido que vamos a mostrar: Por ejemplo para saber si un artículo es estático o dinámico (pertenece a una categoría, sección). La única pregunta que debemos hacernos es: ¿El usuario va a actualizar regularmente el contenido? Si la respuesta es afirmativa, tenemos un contenido dinámico.

El contenido estático estaría reservado a contenidos del tipo contacto, localización, ¿quiénes somos?, estos contenidos varían muy poco (la empresa no suele cambiar de localización mensualmente, por ejemplo). Si es un tipo de contenido estático, también se puede editar. Esto es muy importante para la creación de sitios web complejos, con múltiples categorías y secciones, ya que de ello dependerá el correcto funcionamiento de todos los módulos y componentes, por ejemplo el que muestra las últimas noticias, no mostrará un contenido estático.

Para crear artículos de contenido estático (esto es diferente en la versión joomla 1.x):

  • Creamos un artículo
  • Seleccionamos la sección: sin clasificar
  • Guardamos el artículo.

Esta es una de las mejoras más simples y eficaces que hubo de la versión 1.x a  la versión 1.5, ya que anteriormente todos los artículos debían pertenecer a una sección o categoría.

Por otro lado estaría la parte de la funcionalidad. ¿Qué componentes o módulos vamos a necesitar? ¿En que partes o secciones se van a mostrar módulos relacionados y que relación van a tener entre ellos?

En una página de turismo rural el módulo calendario de jevents, se muestra durante toda la navegación, sin embargo, el módulo de restaurantes se muestra cuando el usuario está navegando por la sección de turismo.

La planificación correcta sería:

  1. Identificar e instalar funcionalidades del sitio: componentes, plugins, etc…
  2. Creación de secciones y categorías. Definir correctamente cada sección y las categorías que la componen.
  3. Crear artículos de contenido estático y sección de contacto.
  4. Crear artículos de contenido dinámico.
  5. Instalación de módulos.

Y sobre todo hacer una copia de seguridad.

Insertar enlace a documentos en artículos de Joomla

Uno de mis componentes favoritos para Joomla es Docman, que nos permite crear una docuteca con documentos de múltiples extensiones. Con Docman, el usuario puede gestionar facilmente los documentos que quiere ofrecer en su sitio en descarga, además es muy intuitivo desde el frontal, se pueden configurar diferentes niveles de acceso para los documentos, cambiar la plantilla predeterminada del sitio, es multidioma, existen muchas extensiones y módulos para docman…En fin que lo tiene todo

Para añadir un enlace a un documento (que tengamos publicado en docman) dentro de un artículo lo único que tenemos que hacer es instalar la extensión docLink. Desde el panel de administración de Joomla en extensiones –> Gestor de Plugins –> Activamos el plugin Docman Standart Buttons.

Al crear un artículo nuevo nos aparecerá este botón:

docman_detalle

Pulsando sobre DOCLink, podremos seleccionar en una ventana de exploración el documento que queremos, y las opciones en las que se mostrará dentro del artículo (miniatura, descripción, icono, etc…)

El resultado en el frontal:

docman_frontal_en_articulo

Descarga de docman desde Joomlatools incluye componente, extensiones y módulos

Descarga de la extensión docLink desde JoomlaTools

Componentes para un joomla 2.0

Joomla es un excelente Gestor de Contenidos (CMS), versátil y escalable, es por ello, que aunque una instalación inicial, nos ahorra muchas horas de desarrollo, es sólo una base.

Para realizar portales 2.0 utilizo una serie de componentes, extensiones y módulos que me permiten personalizar Joomla, para hacerlo más interactivo:

homeofCommunity Builder: Extiende la funcionalidad de la gestión de usuarios. Permitiendo configurar nuevos campos para el formulario de registro, opciones avanzadas para la gestión de permisos, accesos, mensajería privada, usuarios con avatares, etc… Imprescindible sin duda, en un sitio que vaya a tener usuarios.
kunenalogoKunena: Sistema de foro, por decirlo de una manera simplificada.

Se puede integrar fácilmente con el perfil de community builder. Y nuevo aspecto de diseño lo hace mucho más atractivo, además de que muestra el perfil del usuario con su avatar. De hecho en algunos sitios lo utilizan como una completa red social
jocommentJoomlaComment: Excelente componente integrado con el perfil de Community Builder, que nos permite mostrar la imagen, y los comentarios de una manera muy limpia, además de la administración del nivel de acceso permitido a los comentarios.

DenVideo: Nos permite embeber contenidos multimedia (swf, flv, mpg, etc…), así como de proveedores de internet utilizando etiquetas dentro del artículo, que facilita mucho la edición. Utiliza el excelente reproductor jw player.Es necesario instalar el bot, y el componente. Luego insertando la siguiente línea podemos embeber vídeos en cualquier artículo:  {denvideo http://www.youtube.com/watch?v=jYm147x }

JEvents: Calendario de Eventos, en el que los usuarios pueden realizar sus anotaciones, además de permitir insertar eventos por categorías, etc…

Todos estos componentes, extensiones, etc… los podéis encontrar en el Directorio de Extensiones Joomla (JED), aquí se encuentran todas las extensiones existentes para Joomla tanto comerciales como no comerciales.

En JoomlaSpanish también se puede encontrar una gran cantidad de componentes traducidos.

Casos de éxito en libre distribución. Gong (Gestión ONG)

gong

Parece una incoherencia que las ONG´s tengan dependencia tecnológica, y que aunque excepcionalmente algunos fabricantes de software privativo les regalen unas licencias, en general deban comprar las licencias, y obviamente el dinero que ha donado la gente para ayudar a la gente, no debería ir a engrosar los bolsillos de Microsoft, accenture, o similares…

Es por ello que el cenatic ha desarrollado GONG (Gestion ONG), que es una herramienta de gestión integral para ONG’s basada en software libre, creado con alfresco y Ruby on Rails. Esta herramienta esta especialmente orientada a ONGs que trabajan en proyectos de desarrollo.

Podemos destacar las siguientes funcionalidades: