El archivo htaccess y las rutas relativas

Hoy en día, la necesidad de optimizar nuestras páginas para los buscadores hace que sea casi obligatorio programar nuestros sitios web de forma que se pueda acceder a ellos mediante URLS amigables. ¿Y que es eso de las URL amigables? Pues bien, para explicarlo vamos a poner dos ejemplos de URLs, una normal y otra amigable:

http://www.tusitio.com/index.php?seccion=libros&articulo=10

http://www.tusitio.com/libros/10/

En los dos ejemplos de URLs anteriores, el navegador nos debería redirigir a la misma página, pero sin duda es mucho más clara la segunda URL que la primera. Esta segunda URL es la que se llama amigable y es la que los buscadores prefieren, de ahí su importancia.

¿Pues bien, como conseguimos esto en nuestro sitio web? Para ello, el método más utilizado es mediante el archivo .htaccess el cual nos permite establecer las RewriteRule, que no son sino reglas que convertirían una URL amigable en una URL interna y que es la que nosotros manejaremos en nuestra programación. Esta práctica esta muy extendida hoy en día, pero conviene tener en cuenta un detalle y es por el cual escribimos esta entrada.

Y es que al realizar esta reescritura de URL, estamos haciendo que el servidor interprete cual es la página que debe mostrar, pero hay un pequeño «handicap» y no es otro que el concerniente a las URLs relativas. Si en la programación haces uso de URLs relativas te encontrarás con que los contenidos de dichos elementos no se muestran correctamente. Y es que la reescritura se hace en el interprete a nivel de servidor, pero la parte de las URLs se interpreta en el navegador, por lo que no coinciden. Así si por ejemplo en el caso anterior tenemos en el directorio raiz además del archivo index.php una carpeta imagenes donde tenemos un archivo para mostrar, si usamos una URL relativa de la siguiente forma <img src=»imagenes/10.jpg»> cuando accedemos a la web mediante la URL amigable, nos encontraremos con que dentro del supuesto directorio «libros» deberíamos encontrar otro llamado «10» y dentro de este otro llamado «imagenes» que no existe. Por lo que la imagen no se mostraría correctamente. Para ello tenemos dos soluciones:

  • Usar una URL absoluta, en nuestro caso incluiríamos un código como este <img src=»http://www.tusitio.com/imagenes/10.jpg»>
  • Utilizar el elemento HTML BASE dentro de la cabecera de nuestra página, para definir la URL báse de todo el documento y luego podríamos usar urls relativas. La forma de usar este elemento HTML sería algo así: <BASE href=»http://www.tusitio.com»>

El número de servidores de malware creció el 600% en 20012

Un informe revelado por WebSense, refleja que durante 2012 el número de servidores de malware creció cerca de un 600%. Lo más preocupante sin lugar a dudas, que el 85% de los servidores contienen páginas web que son consideradas como seguras por los usuarios, pero que han sido convenientemente modificadas para que sean una fuente de distribución de malware. Y es que sin lugar a dudas, uno esta menos pendiente cuando está navegando por un sitio que cree que es seguro y los cibercriminales se aprovechan de esta situación.

El motivo de este crecimiento según indican estaría en la proliferación de los «kits de ataque» que por unas cantidades realmente reducidas estarían a disposición de prácticamente cualquiera. Estos kits están preparados para realizar ataques de forma automática sobre servidores aprovechando múltiples vulnerabilidades conocidas e inyectando así el código malicioso en las páginas web. Por tanto un buen punto de ataque para cortar estas prácticas, sería intentar acabar con la distribución de esos «kits». Otro de los medios que más están explotándose serían las redes sociales, haciendo gran uso de los servicios de acortadores de URLs que dificultan que los usuarios puedan detectar el destino hasta que no han accedido al sitio web malicioso, momento que posiblemente haga que ya sea tarde y que su equipo haya podido ser objeto del ataque.

Por tanto, no nos cabe sino recordar la conveniencia de estar muy atentos en todo momento, incluso cuando navegamos por sitios «seguros», mantener nuestros equipos convenientemente actualizados y usar una protección adecuada.

Gestionar los tiempos de inactividad en una web

Conocido como «downtime» el periodo de inactividad es el tiempo durante el cual una página web no está disponible cuando el robot de Google, Googlebot (u otros robots, no debemos olvidarnos), intenta rastrearlo. La cuestión es que ese tiempo de inactividad puede afectar significativamente a los resultados de nuestro sitio web en las búsquedas de Google, por tanto hay que gestionar dichos periodos lo mejor posible para evitar penalizar nuestro sitio web tal y como recomiendan desde Google.

Muchas veces no hay más remedio que poner una página web fuera de servicio para labores de mantenimiento importantes o por un problema de seguridad, pero hay opciones para indicar a los robots que habrá dichos periodos de inactividad y que por tanto lo tengan en cuenta de cara a no perjudicar a nuestro sitio web en los resultados. Para ello, se sustituiría el código HTTP 404 devuelto normalmente cuando no se encuentra un sitio web por el código HTTP 503 que indica precisamente que un Servicio no está disponible. Este estado nos permitirá además ofrecer un tiempo estimado añadiendo un encabezado opcional “Retry-After header” en el cual podremos indicar al robot que vuelva a rastrear la url nuevamente en un plazo determinado. Eso si debemos tener cuidado con devolver esté código durante un periodo de tiempo ajustado, ya que la devolución de un estado 503 durante un tiempo prolongado podría ser tomado como una señal de que el servidor no está disponible de forma permanente y se eliminen las URL de los resultados de Google.

PHPMyAdmin 3.4

Si tenéis un servidor propio donde tenéis MySQL instalado, seguramente estaréis utilizando phpMyAdmin como herramienta para administrarlo. PhpMyAdmin aporta una interfaz gráfica para realizar las tareas más comunes, facilitando de esta forma la gestión de nuestro sistema de bases de datos. Pues ahora nos llega la versión 3.4 que trae mejoras para esta labor.

La primera novedad que deberíamos percibir es la inclusión de ajax tras el lavado de cara que le han hecho a la inferfaz de usuario. Así pues se evita el estar recargando páginas completas de forma continua, mejorando en rapidez de funcionamiento. También se ha incluido un visual query builder, para construir de una forma alternativa nuestras consultas SQL. También se ha mejorado el aspecto de importación y exportación de consultas, admitiendo múltiples formatos. Otras mejoras incluyen la adicción de gráficas de estado, pestañas y un nuevo editor ENUM/SET que nos permiten editar, crear o borrar columnas de una tablas más fácilmente. también se corrigen algunos fallos de la anterior versión.

Así pues si queremos probar esta nueva versión encontraremos el código en Sourceforge y si tenemos contratado algún servicio de hosting que incluye PhpMyAdmin como herramienta de administración, es probable que en un futuro no muy lejano veamos como nos ofrecen la nueva versión.

 

Evitando listados de directorios en servidor web con Ubuntu Server

Si has instalado un servidor web con Apache, siempre conviene personalizar algunas cosas para evitar posibles agujeros de seguridad. Así pues,nada más instalar nuestro servidor con apache nos podemos encontrar con que al acceder a un directorio, si en este no hay un archivo index (.php, .html, .htm) que indique al navegador que debería mostrarse, se muestre el contenido del directorio, que además podría permitir la navegación por la estructura de archivos de nuestro servidor (pudiendo de esa forma tener acceso a directorios que deberían pasar inadvertidos).

Para solucionarlo podemos o bien configurar nuestro servidor apache para que no muestre los listados de directorios o bien usar el fichero .htaccess A continuación vamos a explicar las dos opciones:

  • Crear archivos .htaccess Deberíamos crear un archivo donde incluiremos la siguiente directiva «Options -Indexes» Este fichero deberíamos incluirlo en cada directorio de nuestro servidor o bien en el directorio principal y especificardicha opción para cada uno de los directorios. Si nos encontramos trabajando con un hosting donde se da esta circunstancia del listado de los archivos contenidos en el directorio, esta será nuestra única opción para evitarlo.
  • Configurar apache. Para hacer esto deberemos indicarle en el archivo de configuración default que encontraremos en el directorio /etc/apache2/sites-avaliable que no se mostrarán los listados de directorios. Si tenemos varios servidores virtuales, modificaremos el archivo de configuración correspondiente del servidor. A continuación se muestra un fragmento de como debería quedar el archivo de configuración, resaltando la opción a especificar.
<VirtualHost *:80>
        ServerAdmin email@dominio
        ServerName  dominio
        ServerAlias dominio
        DocumentRoot /var/www/web
 ...
        <Directory /var/www/web/reactivox/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
...

Mirror creator, o como subir tus archivos en 14 servidores distintos

Cuando subimos archivos a la web, muchas veces necesitamos crear copias alternativas por si la descarga principal falla (lo que comunmente se conocer como Mirrors). Pues bien, si usamos servicios como RapidShare o MegaUpload necesitabamos logearnos en cada uno de ellos y repetir el proceso hasta tener las «copias» disponibles en los distintos servidores. Pues bien, Mirror creator surge con la intención de evitarnos esa tediosa tarea de forma que desde un mismo interfaz podremos subir hasta en 14 servidores distintos nuestros archivos. Un buen ahorro de tiempo.