Archivo de la categorÃa ‘A Fondo [Desarrollo Web]’
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.
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 regist
ros 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:
Evitarnos 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.
Al 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.
Añadir funcionalidad al sitio drupal [instalar temas y módulos]
Webmasterlibre me hace un hueco en su blog para escribir la tercera parte de un manual básico de instalación de drupal En esta tercera parte se muestra un ejemplo de instalación de módulo y de cambio de tema.
Se presupone que el usuario está familiarizado con la instalación de CMS.
Cambiar el aspecto del sitio. Instalar un tema
Descargamos un tema para drupal (según la versión de drupal que hayamos instalado)
http://drupal.org/project/Themes
- Descomprime la carpeta descargada y transfierela vÃa ftp al directorio themes.
En la parte de administración del sitio vamos a:
Administrar → Construcción del Sitio → Temas
Se muestran en un listado los temas disponibles:
Seguir leyendo el artÃculo [en webmasterlibre.com]
zikula. Un Gestor de Contenidos renovado
En los primeros desarrollos de sitios dinámicos que hacÃa, utilizaba frecuentemente post-nuke ya que era uno de los que más me gustaba (más que phpnuke), era un Gestor de Contenidos, versátil, potente y facilmente modificable con una cantidad de documentación y soporte en español no comparable a ninguna otra gracias principalmente a http://dev-postnuke.com/.
La comunidad de postnuke hispano pasará por ser unas de las más activas, y seguramente zikula.es lo seguirá siendo. El proyecto Postnuke no supo adaptarse y las plantillas se quedaron obsoletas, asà como un montón de módulos y componentes.
Obviamente la web 2.0 exigÃa una renovación total, o la creación de un nuevo proyecto, asà recientemente se anunciaba el fin del proyecto post-nuke para dar paso a uno nuevo: zikula.
La renovación ha sido completa, y hablamos de un proyecto ambicioso, y realmente diferente, además de estable y versátil. El cambio es notable en todos los aspectos: el nombre, las plantillas, la gestión de componentes., la organización del repositorio, el wiki de código, etc…
Sin duda un gestor de contenido, que nos facilitará la creación de muchos sitios web.
Asegurar un sitio Joomla! en 4 pasos
Si tenemos un sitio web Joomla básico, aquà os van cuatro sencillos consejos que os permitirán subir mucho el nivel de seguridad de una instalación predeterminada en media hora.
1. Configurar los permisos:
Los permisos se debe configurar 755 a las carpetas y 644 a los ficheros.
2. Cambiar la ruta al administrator
Si hemos realizado la instalación predeterminada y no hemos movido/renombrado ningún directorio, el atacante sabe perfectamente la ruta donde se encuentra instalada nuestra parte de administración. Para poner dificultades: Leer el resto de esta entrada »
Añadiendo funcionalidad a drupal [instalar y configurar módulos]
La segunda entrega de la instalación de drupal, artÃculo publicado en webmasterlibre.com.
En este artÃculo comenzamos a crear nuestro sitio web mediante módulos que nos permiten añadir funcionalidades.
Leer más [artÃculo en webmasterlibre.com]
Gestores de proyectos de desarrollo colaborativos
Cuando estamos creando un proyecto entre varias personas, se hace imprescindible montar un entorno colaborativo.
Existen excelentes programas de libre distribución que nos permiten hacer esto vÃa web (CMS de gestores de proyectos), de todas las alternativas posibles dependerá el uso que le vamos a dar, mis favoritos:
Gestores de proyectos con controlador de versión de código, y aplicación de tecnologÃas de programación extremas y/o ágiles como SCRUM, XP, y que nos permiten tanto gestionar los diferentes usuarios, tareas, proyectos, etc…como controlar los cambios realizados en el código, de modo que todos los desarrolladores trabajen sobre el mismo código, y generar un informe sobre quién ha hecho cada cambio, y la posibilidad de recuperar versiones anteriores de ficheros.
Collabnet svn: Collabnet Subversion. Integración del ciclo de vida del software, binarios certificados de subversion (asegura que todos los desarrolladores trabajan con la misma versión que la de subversion). Repositorio centralizado de código fuente. Versión para escritorio y multiplataforma.

FVE Project Manager: Integración de tecnologÃas ágiles y de programación extrema como SCRUMP, XP…Es una versión modificada de dotnet hecha en españa! Incluye también subversion.
Gestores de proyectos vÃa web sin control de versiones: En esta categorÃa se encuentran los gestores de proyectos enfocados a la gestión de soporte técnico, y/o herramienta de comunicación con el usuario, y la mayorÃa disponen de un sistema de incidencias. Todos disponen de creación de grupos, asignación de tareas, creación de roles, control del estado del proyecto, generadores de informes, envÃo de solicitud de asistencia (ticket…)
Sobran los comentarios para este sistema. Excepcional, aunque el estilo no está completamente cuidado es fácil modificarlo utilizando plantillas.

PhpEasyProject: Sin duda uno de los más prometedores. Múltiples funcionalidad y sobre todo, facilidad de uso, para quienes necesitan un gestor de proyectos, fácil de instalar y de gestionar.
Utiliza el motor de plantillas Smarty, y entre otras cosas permite la exportación de datos a otras aplicaciones mediante xml.
Prueba tus servidores
Una parte muy importante en un sitio web y que se tiene muy poco en cuenta son las pruebas sobre el sitio web, tanto si tenemos un servidor dedicado, o un alojamiento compartido, deberemos comprobar que nuestro sitio aguanta repuntes de visitas, está bien programado, y responde de una manera rápida.
Para hacer pruebas sobre un servidor web, habrá que diferenciar dos partes fundamentales:
- El rendimiento de la máquina
Para ello tendremos los controladores siempre actualizados con las versiones estables.
Pruebas sobre el procesador, rendimiento de la tarjeta gráfica, tarjeta de red, chequeo de disco duro.
- El rendimiento de los aplicativos web.
Para ello deberemos hacer pruebas sobre el envÃo de todos los formularios, comprobación de programación redundante, cierre correcto de las conexiones a la base de datos, eliminación de las variables de sesión transcurrido un tiempo x desde la primera conexión.
Actualización y parcheado del sistema operativo, software y aplicaciones de terceros.
- La velocidad de la red.
Debemos asegurarnos un caudal constante, fluido y adecuado al tráfico de nuestro sitio web.
Para ello podemos realizar pruebas, realizando peticiones simultáneas con múltiples usuarios que realicen peticiones constantes al servidor, en diferentes formularios. Esto además de ayudarnos a comprobar la solidez de nuestros aplicativos, comprobará la velocidad de respuesta de la base de datos, carga de memoria, balanceo de aplicaciones…
Estos programas nos ayudan a realizar todo tipo de pruebas automatizadas, son de libre distribución :
Funkload Emula un navegador web (monohilo), con comprobación envÃo de formularios, funcionamiento de aplicativos web, monitorización de serviedores… Sólo Linux
TestMaker Test de escalabilidad, funcionalidad y mejora. Se crean agentes que nos permiten emular pruebas inteligentes, como si fuerámos un usuario navegando (multihilo). Buen centro de soporte. Todas las plataformas.
Jblitz Puede hacer pruebas sobre scripts ASP, scripts JSP, Servlets, CGI scripts etc. (Multihilo). Hecho en java, funciona sobre windows. Todas las plataformas, buen entorno gráfico.

