Archivo de la categoría: Internet

Cómo mejorar la velocidad de carga de tu página web

Una de las métricas que utiliza Google para analizar tu página web con su algoritmo de ranking es la velocidad de carga de esta. Si bien es cierto que no contribuye significativamente, sí que puede marcar una diferencia a la hora de mejorar nuestra posición en el buscador una vez tenemos los puntos más básicos para mejorar el SEO cubiertos.

Aparte de la importancia que la velocidad de carga tiene a la hora de posicionarse en Google, tenemos que tener en cuenta que cada segundo que restemos de nuestro tiempo de carga hará que nuestros visitantes continuen navegando, que confíen en nuestro sitio y que hablen a otros de nuestra web. En el caso de tiendas online por ejemplo, unos pocos segundos pueden marcar una enorme diferencia.

Pasemos a ver los pasos más importantes para mejorar la velocidad de carga:

  • Habilitar la compresión gzip: hoy en dia cualquier navegador moderno soporta la compresión gzip. Esta técnica consiste en que el servidor comprime la página a la hora de enviarla al usuario y el navegador automáticamente la descomprime, reduciendo el tamaño de la página en una media de un 70%. Para activar la compresión gzip, debemos habilitar mod_deflate en Apache
  • Aprovecha la caché del navegador: cuando visitas una página web por primera vez, el navegador descarga todos los recursos que esta utiliza (imágenes, CSS, javascript). Lo más normal es que estos recursos no cambien y sirvan para la siguiente visita, por lo que cada recurso debe indicar una política de cacheado mediante la cabecera Cache-Control que indique para cuánto tiempo es válido cada recurso. Además de los recursos, se pueden cachear páginas completas de forma que el servidor no tiene que generar contenido dinámico cada vez que un usuario visita una página. Estas técnicas pueden ahorrar muchísimo tiempo de proceso en el servidor, lo cual se traduce en mayor velocidad de carga y es muy fácilmente implementable en la mayoría de CMS mediante plugins como por ejemplo WP Super Cache para WordPress.
  • Minifica tus recursos: consiste en eliminar contenido innecesario o redundante en nuestras hojas de estilo o scripts javascript reduciendo el tamaño de estos recursos. Muy sencillo de implementar con herramientas como http://jscompress.com/ y http://cssminifier.com/
  • Optimiza tus imágenes: hay muchas maneras de optimizar el uso de las imágenes en nuestra página web, desde simplemente comprimir las imágenes a sustituirlas por imágenes vectorizadas. Google tiene una guía muy completa al respecto.
  • Usa CDNs para cargar tus recursos: un CDN o Content Delivery Network, es una red de servidores distribuidos que sirven contenido web basándose en la situación geográfica del usuario, es decir, si te visita un usuario en París, pero tienes tu página hospedada en Evidalia cuyos servidores están en España, usando un CDN para cargar tus recursos (CSS, javascript) estos se cargarán del servidor que el CDN tiene en París, por lo que tu página web tendrá menos latencia para el usuario. Utilizarlo es muy sencillo, los scripts más utilizados como jQuery o Bootstrap se pueden obtener muy fácilmente desde un CDN y es tan fácil como sustituir:
    <script src="/scripts/jquery-1.11.2.min.js"></script>
    <link href="/css/bootstrap.min.css" rel="stylesheet">

    por:

     <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
     <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">

Google nos proporciona una herramienta llamada PageSpeed Insights que podemos utilizar para comprobar cada uno de los puntos más básicos, además de otros más avanzados, que influyen en la velocidad de carga de nuestra web y que Google tiene en cuenta y nos muestra consejos sobre qué puntos debemos mejorar en nuestra página.

Facebooktwittergoogle_plus

¿Que son los certificados SSL?

sslSecure Socket Layer es un sistema de protocolos de caracter general diseñado en 1994 por la empresa Nestcape Communcations Corporation, y está basado en la aplicación conjunta de Criptografía Simétrica, Criptografía Asimétrica (de llave pública), certificados digitales y firmas digitales para conseguir un canal o medio seguro de comunicación a través de Internet. De los sistemas criptográficos simétricos, motor principal de la encriptación de datos transferidos en la comunicación, se aprovecha la rapidez de operación, mientras que los sistemas asimétricos se usan para el intercambio seguro de las claves simétricas, consiguiendo con ello resolver el problema de la Confidencialidad en la transmisión de datos.

SSL implementa un protocolo de negociación para establecer una comunicaión segura a nivel de socked (nombre de máquina más puerto), de forma transparente al usuario y a las aplicaciones que lo usan.

Actualmente es el estandar de comunicación segura en los navegadores web más importantes (protocolo HTTP), como Nestcape Navigator e Internet Explorer, y se espera que pronto se saquen versiones para otras otros protocolos de la capa de Aplicación (correo, FTP, etc.).

La identidad del servidor web seguro (y a veces también del usuario cliente) se consigue mediante el Certificado Digital correspondiente, del que se comprueba su validez antes de iniciar el intercambio de datos sensibles (Autenticación), mientras que de la seguridad de Integridad de los datos intercambiados se encarga la Firma Digital mediante funciones hash y la comprobación de resúmenes de todos los datos enviados y recibidos.

Desde el punto de vista de su implementación en los modelos de referencia OSI y TCP/IP, SSL se introduce como una especie de nivel o capa adicional, situada entre la capa de Aplicación y la capa de Transporte, sustituyendo los sockets del sistema operativo, lo que hace que sea independiente de la aplicación que lo utilice, y se implementa generalmente en el puerto 443. (NOTA: Los puertos son las intefaces que hay entre las aplicacoines y la pila de protocolos TCP/IP del sistema operativo).

SSL proporciona servicios de seguridad a la pila de protocolos, encriptando los datos salientes de la capa de Aplicación antes de que estos sean segmentados en la capa de Transporte y encapsulados y enviados por las capas inferiores. Es más, también puede aplicar algoritmos de compresión a los datos a enviar y fragmentar los bloques de tamaño mayor a 214 bytes, volviendolos a reensamblarlos en el receptor.

La versión más actual de SSL es la 3.0. que usa los algoritmos simétricos de encriptación DES, TRIPLE DES, RC2, RC4 e IDEA, el asimétrico RSA, la función hash MD5 y el algoritmo de firma SHA-1.

Los algoritmos, longitudes de clave y funciones hash de resumen usados en SSL dependen del nivel de seguridad que se busque o se permita, siendo los más habituales los siguientes:

* RSA + Triple DES de 168 bits + SHA-1: soportado por las versiones 2.0 y 3.0 de SSL, es uno de los conjuntos más fuertes en cuanto a seguridad, ya que son posibles 3.7 * 1050 claves simétricas diferentes, por lo que es muy dificil de romper. Por ahora sólo está permitido su uso en Estados Unidos, aplicándose sobre todo en transacciones bancarias.

* RSA + RC4 de 128 bits + MD5: soportado por las versiones 2.0 y 3.0 de SSL, permite 3.4 * 10 38 claves simétricas diferentes que, aunque es un número inferior que el del caso anterior, da la misma fortaleza al sistema. Análogamente, en teoría sólo se permite su uso comercial en Estados Unidos, aunque actualmente ya es posible su implementación en los navegadores más comunes, siendo usado por organismos gubernamentales, grandes empresas y entidades bancarias.

* RSA + RC2 de 128 bits + MD5: soportado sólo por SSL 2.0, permite 3.4 * 10 38 claves simétricas diferentes, y es de fortaleza similar a los anteriores, aunque es más lento a la hora de operar. Sólo se permite su uso comercial en Estados Unidos, aunque actualmente ya es posible su implementación en los navegadores más comunes.

* RSA + DES de 56 bits + SHA-1: soportado por las versiones 2.0 y 3.0 de SSL, aunque es el caso de la versión 2.0 se suele usar MD5 en vez de SHA-1. Es un sistema menos seguro que los anteriores, permitiendo 7.2 * 10 16 claves simétricas diferentes, y es el que suelen traer por defecto los navegadores web en la actualidad (en realidad son 48 bits para clave y 8 para comprobación de errores).

* RSA + RC4 de 40 bits + MD5: soportado por las versiones 2.0 y 3.0 de SSL, ha sido el sistema más común permitido para exportaciones fuera de Estados Unidos. Permite aproximadamente 1.1 * 10 12 claves simétricas diferentes, y una velocidad de proceso muy elevada, aunque su seguridad es ya cuestionable con las técnicas de Criptoanálisis actuales.

* RSA + RC2 de 40 bits + MD5: en todo análogo al sistema anterior, aunque de velocidad de proceso bastante inferior.

* Sólo MD5: usado sólamente para autentificar mensajes y descubrir ataques a la integridad de los mismos. Se usa cuando el navegador cliente y el servidor no tienen ningún sistema SSL común, lo que hace imposible el establecimiento de una comunicación cifrada. No es soportado por SSL 2.0, pero si por la versión 3.0.

La clave de encriptación simétrica es única y diferente para cada sesión, por lo que si la comunicación falla y se debe establecer una nueva sesión SSL, la contraseña simétrica se generará de nuevo.

SSL proporciona cifrado de alto nivel de los datos intecambiados (se cifran incluso las cabeceras HTTP), autenticación del servidor (y si es necesario también del cliente) e integridad de los datos recibidos.

Durante el proceso de comunicación segura SSL existen dos estados fundamentales, el estado de sesión y el estado de conexión. A cada sesión se le asigna un número identificador arbitrario, elegido por el servidor, un método de compresión de datos, una serie de algoritmos de encriptación y funciones hash, una clave secreta maestra de 48 bytes y un flag de nuevas conexiones, que indica si desde la sesión actual se pueden establecer nuevas conexiones. Cada conexión incluye un número secreto para el cliente y otro para el servidor, usados para calcular los MAC de sus mensajes, una clave secreta de encriptación particular para el cliente y otra para el servidor, unos vectores iniciales en el caso de cifrado de datos en bloque y unos números de secuencia asociados a cada mensaje.

¿Cómo podemos saber si una conexión se está realizando mediante SSL?. Generalmente los navegadores disponen de un icono que lo indica, generalmente un candado en la parte inferior de la ventana. Si el candado está abierto se trata de una conexión normal, y si está cerrado de una conexión segura. Si hacemos deble click sobre el candado cerrado nos aparecerá el Certificado Digital del servidor web seguro.

Además, las páginas que proceden de un servidor SSL vienen implementadas mediante protocolo HTTP seguro, por lo que su dirección, que veremos en la barra de direcciones del navegador, empezará siempre por https, como por ejemplo:

https://www.evidaliahost.com

Por último, cuando estamos en una conexión segura podemos ver el certificado del servidor acudiendo al menú “Archivo” del navegador y pinchando en “Propiedades”. En la parte inferior tenemos una opción “Certificados”, que nos mostrará el del servidor actual.

Facebooktwittergoogle_plus

Mejorar el rendimiento de un CMS

Hay muchas maneras de agilizar un CMS. Por lo general se trata de cachear algunas páginas, para que se muestren mas rápidamente, aunque hoy os vamos a contar una manera de mejorar el rendimiento gracias a MySQL.

Por lo general, todas las aplicaciones web necesitan de MySQL u otra base de datos para almacenar y mostrar su contenido. Si el acceso a la información de la base de datos se ralentiza, toda la pagina se demorará en su carga. Por ello vamos a intentar aumentar el valor de la variable max_allowed_packet.

Lo primero será acceder a la base de datos. Podemos hacerlo via phpMyAdmin o directamente desde la consola. Una vez estemos en la base de datos que corresponda ejecutaremos el comando:

show variables like 'max_allowed_packet';

El resultado obtenido lo deberemos dividir 2 veces por 1024 para obtener el valor en megas. Por norma general nuestro hosting tendrá un valor de un 1Mb. Este es el tamaño máximo que tendrá un paquete. Para aumentar dicho tamaño, deberemos utilizar el siguiente comando:

SET GLOBAL max_allowed_packet=tamaño*1024*1024;

Siendo tamaño, el valor que queramos indicar como tamaño máximo del paquete en megas. Aunque este valor se puede incrementar hasta 1 Gb, por lo general, con un tamaño de 128 Mb, obtendremos una apreciable mejora en el rendimiento de nuestra aplicación.

Esperamos que os sirva.

Facebooktwittergoogle_plus

Un servidor web con VirtualBox – usar un cliente FTP

Hasta ahora, la única prueba que hemos realizado en nuestro servidor ha consistido en crear la pagina info.php con el editor nano, y guardarla en nuestro servidor virtual en la ubicación / var/www

Pero en el caso de querer copiar una web que ya tengamos creada o de quere instalar una aplicación web, necesitaremos habilitar el traspaso de información desde el equipo anfitrión al equipo virtual. Para ello vamos a instalar el protocolo SSH en el servidor virtual y nos conectaremos a él utilizando un cliente de ftp, en nuestro caso FileZilla.

Instalando SSH en el servidor

Como ya hemos utilizado tasksel para realizar la instalación del servidor Apache, hoy vamos a realizar las instalaciones desde la consola (así vemos varios métodos). Accederemos a nuestra máquina virtual y teclearemos:

sudo apt-get install openssh-server

o bien, si quisiéramos hacer la instalación desde tasksel, abriramos la aplicación tecleando sudo tasksel y a continuación tan solo deberíamos marcar la casilla OpenSSH Server  y Aceptar.

servidor-local-ubuntu-openssh

Una vez instalado el servidor, vamos a probar su funcionamiento en local. Para ello teclearemos:

ssh nombre-usuario@127.0.0.1

donde sustituiremos nombre-usuario por nuestro nombre de usuario, y a continuación indicaremos nuestra contraseña. En nuestro primer acceso veremos un mensaje de aviso, al cual responderemos yes, y ya tendremos nuestra conexión funcionando.

servidor-local-ubuntu-openssh-conectado

Y para salir, simplemente teclearemos exit.

Configurar Filezilla para acceder a la máquina virtual.

En el equipo anfitrión, abriremos FileZilla y pulsaremos sobre el icono Gestor de Sitios. Pulsaremos el botón Nuevo sitio e indicaremos los datos relativos a nuestro servidor, es decir, la ip, nuestro nombre de usuario y la contraseña. En el apartado de protocolo, deberemos seleccionar la opción SFTP – SSH File Transfer Protocol

servidor-local-ubuntu-ssh-filezilla

Si has realizado los pasos que comentamos en el capítilo Un servidor web con VirtualBox – Configurando la red, habrás editado el fichero hosts para acceder a tu servidor local utilizando un nombre en lugar de la ip. Este nombre también puede ser utilizado en FileZilla, en lugar de indicar la IP.

Como podrás comprobar, hemos accedido a nuestro equipo servidor mediante FileZilla y aunque podemos visualizar la carpeta / var/www, no tenemos los permisos para modificar su contenido. En la próxima entrega crearemos alias de dominio para poder utilizar la carpeta home para guardar nuestras webs.

Entregas anteriores

Facebooktwittergoogle_plus

La polemica ley de cookies

Ley de cookiesSeguro que muchos de vosotros habréis observado que en numerosos sitios web han comenzado a aparecer mensajes en los cuales se advierte de la utilización de cookies. Estas advertencias son fruto del artículo 22 de la LSSI, norma que apareció en abril de 2012 y que habla sobre la privacidad y el almacenamiento de información en el equipo sin consentimiento del usuario. Por esta nueva normativa y a raíz de varias denuncias por parte de los usuarios, los organismos oficiales han comenzado a realizar los pertinentes trámites para sancionar a algunos sitios web por el incumplimiento de dicha ley.

Para profundizar mas sobre éste tema y conocer a fondo dicha normativa podéis acceder a la web de la Agencia española de protección de datos, donde existe una guía en pdf sobre el uso de las cookies.

Un resumen muy muy breve de lo que en dicha guía se nos comenta es lo siguiente:

  • En el caso de que el sitio web necesite/utilice cookies, es necesario el consentimiento previo por parte del usuario.
  • Si se le muestra el aviso al usuario, y continua navegando, aunque no haya pulsado el botón de aceptar, estariamos dentro de la legalidad, puesto que la ley permite la aceptación implícita de las cookies.
  • Debe permitirse al usuario revocar el consentimiento en cualquier momento.

Así mismo, no todas las cookies están sujetas a dicha ley. Existen una serie de cookies llamadas “técnicas” las cuales estarian exentas. Un ejemplo las utilizadas en la gestión de los carros de compra de tiendas online, las utilizadas para recordar datos de formularios o también por ejemplo las utilizadas en la personalización de la interfaz de usuarios, autentificación de usuarios, etc.

Facebooktwittergoogle_plus

Opciones para crear un sitio de venta online

e-commerce

Existen numerosas utilidades para crear un sitios de venta online. Hay algunas aplicaciones especificas para el comercio electronico como es el caso de OsCommerce, Prestashop, Magento, Zen Cart, Open Cart, etc y también existen otras aplicaciones que funcionan como modulo adicional o addon para un CMS, como es el caso de VirtueMart para Joomla, Ubercart para Drupal, o como el caso de e-Commerce y WooComerce para WordPress.

Hoy queremos comentaros un poco acerca de las herramientas especificas para el comercio electrónico.

OsCommerce

Es uno de los proyectos mas veteranos. Su aparición en el año 2000, su potencia (en aquel entonces) y su escasa competencia, hicieron que este software se alzara como la mejor apuesta para iniciarse en el mundo de la venta online. La comunidad se volcó con dicho proyecto y comenzaron a surgir modulos adicionales que ampliaban las posibilidades de éste software.

A partir de 2008, el proyecto va perdiendo usuarios, debido en gran medida, a los pocas novedades, las dificultades para modificar su diseño. La prometida versión 3 va demorándose y la comunidad de desarrolladores está migrando a otras plataformas donde si que existe una evolución constante.

Página del proyecto Oscommerce

Prestashop

Prestashop está creciendo a un nivel espectacular. La instalación es sencilla y los requerimientos de hosting no son muy elevados, lo que la hacen una aplicación muy indicada tiendas en los que no se espera un gran volumen de usuarios.

Existe un equipo de desarrollo de Prestashop dedicado a crear módulos y temas para la aplicación, aparte, la comunidad puede aportar su granito de arena publicando también sus creaciones. Los ingresos producidos por las ventas de addons son utilizados para financiar el proyecto.

Página del proyecto Prestashop

Magento

Los requisitos de hosting por parte de Magento son bastante elevados. La mejor opción es contar con un servidor VPS, por lo que este software está indicado para sitios en los que se espera un gran numero de accesos.

Existen dos versiones la Community Edition, que es gratuita pero con pocas funcionalidades, y la Enterprise Edition de pago y destinada a un sector más profesional. También disponen de una web donde conseguir módulos adicionales para ampliar las funcionalidades de la tienda.

Actualmente es la plataforma lider, aunque seguida muy de cerca por Prestashop.

Open Cart

Posee un sistema de instalación sencillo y un diseño muy cuidado, aunque por lo general, todas las extensiones que queramos incorporar serán de pago. Otro inconveniente es que la comunidad de desarrolladores es bastante inferior que en otras plataformas como es el caso de Prestashop.

Página del proyecto Open Cart

Facebooktwittergoogle_plus

La Meta Tag: Robots

La Meta tag Robots es utilizada para para las indexaciones de los buscadores. Mediante Robots, podemos indicar las páginas que no queremos que sean indexadas por los motores de búsqueda. Su estructura básica es la siguiente:

<META NAME="robots" CONTENT="parametros">

La lista de los parámetros que podemos incluir son:

  • all: La página será indexada por completo, incluidos sus archivos.
  • none: La página se indexará pero no los archivos.
  • index: Permite que la página sea indexada.
  • noindex: Evita que la página sea indexada.
  • follow: Permite a los robots que sigan los vínculos de nuestra página a otras.
  • nofollow: Evita que se sigan los vinculos de nuestra página a otras.
  • archive / noarchive: Permite o evita que la página sea almacenada en la cache interna de los buscadores.
Facebooktwittergoogle_plus

Quitar el cartel de “Este sitio es una web atacante”

Si nuestra web ha sido victima de algún ataque por parte de hackers, al entrar en ella, nuestro navegador mostrará un mensaje de advertencia.sitio-web-atacante

Cuando hemos limpiado el contenido de la web (deberemos cerciorarnos de ello), el mensaje de advertencia continuará apareciendo hasta que la web no sea indexada de nuevo y Google detecte que ya no existe peligro.

Como éste cartel afectará negativamente a las visitas de nuestro sitio, podremos acelerar el proceso de indexación. Para ello, deberemos pulsar sobre el enlace Página de diagnóstico de navegación segura en el caso de utilizar Google Chrome o bien, sobre el botón ¿Por qué ha sido bloqueado este sitio? si estamos utilizando Firefox.

En ambos casos llegaremos a una página de Google en la que se nos informa de la última vez que se rastreó la página y la fecha en la que se encontró software malicioso. En la misma página, se encuentra un enlace en el que podremos acceder para solicitar una revisión de la página, aunque para ello deberemos utilizar las herramientas para Webmasters de Google.

herramientas-webmasters

Facebooktwittergoogle_plus

El registro CNAME

Dentro de las opciones DNS de un dominio, existen los registros llamados CNAME. Estos registros de nombre canónico (Canonical Name) son básicamente alias para un dominio en concreto.

Su principal función es la de dirigir varios nombres de dominio subdominios a un único host. Por ejemplo www.midominio.com, midominio.com y subdominio.midominio.com resolverían al mismo dominio.

CNAME también es necesario que esté definido para los diferentes servicios que estén activos. Por ejemplo los servicios web y ftp poseen las direcciones www.midominio.com y ftp.midominio.com. Cada servicio tiene su propia entrada de DNS aunque estén ubicados en un servidor con una única dirección IP.

Facebooktwittergoogle_plus