Archivo de abril de 2009

Herramientas LD para profesionales de las TI

Tan importante para una web es tener una buena programación, un buen contenido y un buen diseño, como la máquina en la que se aloja, y la seguridad de nuestro sitio web.

Obviamente no podemos predecir si nuestra página tendrá dos usuarios o diez mil, pero si podemos preparar un plan de contingencia para ello, ya que una página visitada, es un caramelo para hacer spam y  ataques.

Tampoco deberíamos permitirnos el lujo de que el sitio se quede fuera de línea porque simple y llanamente no sea capaz de soportar un pico de tráfico,  por una reseña, o un buen posicionamiento google y entonces se dé lo que venimos en llamar “morir de éxito”. Para comprobar que nuestro servidor, programación y sitio están  en forma podemos utilizar las siguientes herramientas que ha recopilado la gente de kineo open source, para poder realizar una auditoría de seguridad y de calidad del código.

tools

Herramientas para comprobar los servidores, errores sobre las máquinas, pruebas sobre las bases de datos, pruebas de rendimiento, comprobación de enlaces, y otro tipo de pruebas.

Herramientas para verificar la programación dividas por lenguaje de programación.

Sin duda un recurso imprescindible que se merecía una entrada y no un simple enlace.

¿Qué tiene wordpress en contra de mover las imágenes? Va fatal la alineación. Si le pongo espacio horizontal y vertical, todavía es peor.

Utilizar el robot.txt para ocultar tu sitio web

Aunque el entusiasta2.0 piense que esta es otra de mis campañas para demonizar a Google, sólo voy a explicar cómo ocultar una web utilizando el fichero robots.txt y utilizar el sitemap.xml para indicarle a Google las ramas de nuestro sitio que tiene permitido recorrer, por razones técnicas, de seguridad y de privacidad. Ya que Google aunque técnicamente hace productos muy buenos con sus políticas de privacidad (me corta todo el rollo) me crea una sensación un tanto contradictoria.

Obviamente si no aparecemos en Google no existimos, pero a veces nos puede interesar por ocultardeterminados motivos  que nuestro sitio no aparezca listado en Gran Hermano bien porque es un url de prueba, bien porque nos encontramos desarrollado el sitio o bien porque queremos esconderlo de miradas ajenas: por ejemplo un servicio de videovigilancia ip de un negocio privado, nunca debería aparecer listado en google.

Si queremos impedir  el acceso a google a determinadas zonas de nuestro sitio web, ya sea porque nos permite añadir un punto más de seguridad a nuestro sitio web ( ya que los spammer muchas veces se valen de google para planificar sus ataques), ya sea por otros motivos. Por seguridad en mis sitios webs, no me gusta mantener los directorios privados indexados por google (por ejemplo el acceso a la intranet, el gestor de correo, directorio de administración )

Por ejemplo en un sitio web tengo el siguiente escenario:

  • Utilizamos un gestor de contenidos Joomla (y es fácil que muchas carpetas se encuentren predeterminadas)
  • En la parte de pruebas tenía varios directorios con permisos de escritura (estaba realizando pruebas de componentes)
  • La administración de la versión 1.0.x de Joomla, tenía una vulnerabilidad que no había parcheado en inyección de sql.
  • El Gran Hermano estaba mostrando mis vergüenzas: Si hacía una búsqueda en Google devolvía la ruta al panel de administración (sólo haría falta un ataque de fuerza bruta), y la de pruebas, además eran de las más visitadas, sospecho que porque estaba migrando la página a 1.5.

¿Cómo atacan un sitio?

Generalmente el hacker de turno envía en primer lugar unos robots, que navegan por todos los enlaces visibles de la web buscando vulnerabilidades (autocompletado de formulario, directorios con permisos de escritura, directorios de administración), estos robots, o bien utilizan los motores de otros robots como google, yahoo, msn, para realizar ataques automatizados,  o infectan un conjunto de equipos a los que pone a navegar por internet (redes zombies), y a completar formularios, en busca de vulnerabilidades. ¿Porqué esta gente no dedicará su tiempo y esfuerzo a la computación distribuida o hacer un programa de libre distribución? “

¿Cómo evitar que Google enseñe mis vergüenzas?

Modificar el fichero robots.txt y crear un fichero sitemap.xml. Esto hará que el Gran Hermano evite el acceso a los sitios que indiquemos, pongo el ejemplo de un sitio que no quiero que muestre desde el raíz.

Para no permitir el acceso de cualquier robot al sitio web:

  • Prohibir el acceso a cualquier robot (esto previene los ataques):

User-Agent: *

Disallow: /

    • Para prohibir el acceso a un directorio:Disallow: /correo

    Disallow: /administrator
    Disallow: /pruebas
    Disallow: /intranet

      • Para prohibir la indexación de un fichero:

      Disallow: /cuentas_correo.html

      • Con etiquetas META

      <html>
      <head>
      <meta name=”googlebot” content=”noindex”>

      • Otra sintáxis admitida:

      <META name=”robots” content=”NOINDEX,NOFOLLOW,NOARCHIVE,NOODP,NOSNIPPET, NOOPD, NOYDIR”>

      Esto no permitiría realizar búsquedas, ni seguir un enlace, ni mirar un archivo, ni aparecer en el directorio, ni aparecer en yahoo.

      • Enlaces relacionados:

      Controlando como los robots de búsqueda indexan tu sitio (Herramientas de Google para webmasters artículo en Inglés)

      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.

      logo_collabnetCollabnet 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.

      firstlogofveFVE 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…)

      phprojekt_logo2

      Sobran los comentarios para este sistema. Excepcional, aunque el estilo no está completamente cuidado es fácil modificarlo utilizando plantillas.

      phpeasyproject

      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.