Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Su sitio web: https, HSTS y cabeceras de seguridad

Módulo 4: Correo electrónico, sitio web y dominio · Tiempo de lectura: 11 minutos

Objetivo de aprendizaje: Después de esta lección podrá comprobar la seguridad básica de su sitio web: un certificado válido, redirección a https, HSTS con un max-age adecuado, las cabeceras de seguridad más importantes y la actualización de su CMS.
Conceptos clave: certificado TLS, https, redirección a https, HSTS, max-age, includeSubDomains, preload, cabecera HTTP, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Qué ocurre cuando alguien abre su sitio

Si un cliente escribe example.com en la barra de direcciones, el navegador solicita la página a su servidor web. Esa conversación pasa por HTTP. Con https esa conexión queda envuelta en cifrado: TLS. Para ello su sitio web necesita un certificado TLS (a menudo todavía llamado certificado SSL). El certificado demuestra que el servidor realmente pertenece a example.com, y el cifrado garantiza que nadie pueda leer o modificar el tráfico por el camino. Esto es importante en redes wifi públicas, donde no sabe quién administra la red (lección 5.3).

En cada respuesta, el servidor envía, además de la propia página, una serie de cabeceras: líneas breves con información e instrucciones para el navegador. No las ve en la pantalla, pero determinan en gran medida con qué seguridad trata el navegador su sitio. Una parte de esas cabeceras son cabeceras de seguridad. En esta lección repasamos las cuatro capas: certificado, redirección, HSTS y cabeceras. Después veremos brevemente la actualización de su propio sitio web.

Capa 1: un certificado válido

Un certificado está en orden si cumple tres condiciones:

  1. no ha caducado;
  2. ha sido emitido por un emisor de confianza (una autoridad de certificación que los navegadores reconocen, como Let's Encrypt o una entidad comercial);
  3. es válido para exactamente el nombre que abre el visitante: example.com y www.example.com si usa ambos.

Hoy en día, casi todos los proveedores de alojamiento gestionan un certificado gratuito que se renueva automáticamente. Si algo falla, suele deberse a que el nombre de dominio apunta a otro servidor, o a que un registro CAA bloquea al emisor (lección 4.3).

Es importante saber lo siguiente: un candado no dice nada sobre la fiabilidad del sitio. Solo indica que la conexión está cifrada y que el certificado corresponde al nombre de la barra de direcciones. Los sitios de phishing en mijnbank-veilig.example también tienen candado. Por eso en la lección 3.2 aprenderá a leer el dominio.

Capa 2: redirigir siempre a https

Un certificado por sí solo no basta. Quien abra http://example.com, por ejemplo mediante un enlace antiguo o escribiendo solo el nombre, debe pasar automáticamente a la versión https. Esto se llama redirección (un redirect, normalmente con el código de estado 301).

Un orden correcto es el siguiente:

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (solo si usa www como dirección principal)
http://www.example.com  ->  https://www.example.com

Fíjese en la primera línea: redirija primero de http a https en el mismo nombre, y solo después, si procede, a www. Así el navegador también puede recibir la instrucción HSTS del nombre sin www. Internet.nl comprueba exactamente esto.

Un error habitual es la doble redirección: en el panel de alojamiento y además en un plugin o en .htaccess. Esto puede provocar un bucle infinito ("demasiadas redirecciones"). Use un único lugar.

Capa 3: HSTS

La redirección tiene un momento débil: la primerísima solicitud todavía va sin cifrar por http. Un atacante en la misma red puede interceptar esa única solicitud y mantener al visitante en una versión falsificada y sin cifrar. Para eso existe HSTS (HTTP Strict Transport Security, RFC 6797).

Con HSTS, su sitio envía una cabecera mediante https:

Strict-Transport-Security: max-age=31536000; includeSubDomains

El navegador recuerda entonces: "este sitio hay que abrirlo solo por https, durante los próximos 31.536.000 segundos (un año)". Si el visitante escribe más tarde http://example.com, el navegador lo convierte él mismo en https, incluso antes de que nada viaje por la red. La primera solicitud débil desaparece.

ElementoSignificado
max-age=Cuánto tiempo lo recuerda el navegador, en segundos. Internet.nl considera suficiente al menos un año (max-age=31536000); un periodo corto no protege a las personas que visitan su sitio solo de vez en cuando.
includeSubDomainsSe aplica también a todos los subdominios, como shop.example.com y mail.example.com.
preloadSolicita su inclusión en la lista integrada en los navegadores (hstspreload.org). Así incluso la primerísima visita queda protegida. Requisitos: entre otros, un max-age de al menos un año, includeSubDomains y todos los subdominios por https. Salir de la lista lleva mucho tiempo.
max-age=0Borra de nuevo la instrucción recordada.

Tres cosas que debe saber antes de activar HSTS:

  • Primero https debe funcionar en todas partes. Un navegador que ha recordado HSTS y detecta un error de certificado no ofrece ningún botón al visitante para continuar de todos modos (RFC 6797, apartado 12.1). Si su certificado caduca o no es válido para www, su sitio quedará inaccesible para esos visitantes hasta que se solucione.
  • includeSubDomains afecta a todo lo que esté bajo su dominio. Un subdominio antiguo sin certificado, por ejemplo una página de impresora o de cámara en camera.example.com, dejará de poder abrirse.
  • Constrúyalo por etapas. Empiece con un max-age corto (por ejemplo, un día), compruebe que todo funciona, y vaya aumentando por pasos hasta un año. Espere en cada paso todo el periodo correspondiente.

Una cabecera HSTS que llega por http normal es ignorada por el navegador. Por tanto, solo la verá en la respuesta https.

Capa 4: cabeceras de seguridad

Además de HSTS, hay varias cabeceras que indican al navegador qué puede y qué no puede hacer con sus páginas. No es necesario tenerlas todas perfectas, pero las tres primeras son sencillas y no implican ningún riesgo.

CabeceraContra qué protegeValor correcto
X-Content-Type-OptionsEl navegador intenta adivinar por su cuenta qué tipo de archivo es, lo que puede hacer que una "imagen" subida se ejecute como un script.nosniff (el único valor válido)
Content-Security-Policy: frame-ancestors ... o X-Frame-OptionsClickjacking: otro sitio carga su página de forma invisible dentro de un marco (frame) y hace que los visitantes hagan clic, sin saberlo, en sus botones.frame-ancestors 'self' o 'none'; la cabecera antigua X-Frame-Options: SAMEORIGIN o DENY
Referrer-PolicyAl hacer clic hacia otro sitio, el navegador envía la dirección de la página anterior. Esta puede contener información sensible, como un término de búsqueda o un número de pedido.no-referrer o same-origin (estricto), strict-origin-when-cross-origin (habitual; internet.nl muestra una advertencia en este caso)
Content-Security-Policy (completa)Limita desde qué lugares pueden cargarse scripts, estilos e imágenes. Dificulta mucho la inserción de scripts maliciosos (XSS).A medida para cada sitio. Evite unsafe-inline, unsafe-eval y comodines.

Una Content-Security-Policy completa es la más potente, pero también la más complicada: una regla demasiado estricta puede romper sus estadísticas, su botón de pago o su ventana de chat. Con la variante Content-Security-Policy-Report-Only puede medir primero qué se bloquearía, sin romper nada. Deje esto en manos de su desarrollador web, o empiece solo con frame-ancestors.

Ver las cabeceras usted mismo

Abra su sitio en un navegador, pulse F12 (o elija "Inspeccionar"), vaya a la pestaña Red, vuelva a cargar la página y haga clic en la primera solicitud. En "Cabeceras de respuesta" (Response Headers) verá todo lo que envía el servidor. Desde la línea de comandos también es posible:

curl -sI https://example.com/

El propio sitio web: CMS, plugins y temas

Las mejores cabeceras no sirven de nada si el software detrás de su sitio es vulnerable. La mayoría de los sitios de pequeñas empresas que son hackeados no han sido vulnerados a través del servidor web, sino mediante un plugin desactualizado, un tema que lleva años sin actualizarse, o una contraseña de administrador débil.

  • Active las actualizaciones automáticas de su CMS (por ejemplo, WordPress, Joomla u otro sistema) y de los plugins que lo permitan.
  • Elimine los plugins y temas que no use; desactivarlos no es suficiente, los archivos siguen ahí.
  • Use para el inicio de sesión de administrador una contraseña fuerte y única, y verificación en dos pasos (módulo 2), y limite el número de intentos de inicio de sesión.
  • Mantenga la versión de PHP (u otro lenguaje) de su paquete en una versión que siga recibiendo actualizaciones (lección 5.1).

En la práctica: así se ve

En DirectAdmin, el panel que usa WebOké, active primero SSL Seguro en su dominio y después Forzar SSL con redirección https. En el mismo lugar hay un interruptor para HSTS; actívelo solo cuando el certificado funcione para todos los nombres. En otros proveedores funciona de forma similar, o puede configurarlo en los ajustes de su CMS.

Si su sitio funciona sobre Apache o LiteSpeed, también puede poner las cabeceras en .htaccess:

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Añada includeSubDomains solo cuando esté seguro de que todos los subdominios tienen https. Compruebe después de cada cambio con la prueba de sitio web de internet.nl o con las herramientas de desarrollador de su navegador.

Resumen

  • Un candado significa: cifrado y el nombre correcto. No significa: fiable.
  • Redirija siempre http a https, primero en el mismo nombre, y en un único lugar.
  • HSTS hace que el navegador recuerde que su sitio solo funciona por https; internet.nl considera correcto un max-age de al menos un año (31536000). Actívelo solo cuando https funcione en todas partes, y constrúyalo por etapas.
  • X-Content-Type-Options: nosniff, frame-ancestors (o X-Frame-Options) y Referrer-Policy son sencillas; una Content-Security-Policy completa requiere trabajo a medida.
  • Las actualizaciones de su CMS, plugins y temas son, como mínimo, tan importantes como las cabeceras.

Cuestionario

1. ¿Qué evita exactamente HSTS?



2. Usted activa Strict-Transport-Security: max-age=31536000; includeSubDomains. Una semana después caduca el certificado de shop.example.com. ¿Qué notan los visitantes habituales?



3. ¿Qué max-age mínimo considera suficiente internet.nl para HSTS?



4. ¿Contra qué protege Content-Security-Policy: frame-ancestors 'self'?



5. Ve un candado en mijnbank-veilig.example en la barra de direcciones. ¿Qué sabe con certeza gracias a ello?



Ejercicio

Ejercicio A4.2: Comprobar https, HSTS y cabeceras de su sitio web. Introduzca el nombre de dominio de su sitio web (si no tiene ninguno, use internet.nl). El programa abre http:// y https:// de su dominio y comprueba el certificado, la redirección a https, HSTS y las cabeceras de seguridad. Recibirá por cada punto un resultado verde, naranja o rojo con explicación.

Ejercicio A4.2: Comprobar https, HSTS y cabeceras de su sitio web

Introduzca el nombre de dominio de su sitio web (si no tiene uno, utilice internet.nl). El programa abre http:// y https:// de su dominio y comprueba el certificado, la redirección a https, HSTS y las cabeceras de seguridad. A continuación, introduzca el max-age de HSTS.



No guardamos lo que escriba ni lo que encontremos. Su navegador recuerda sus respuestas y si ha superado el ejercicio. Si ha iniciado sesión, en Mis cursos solo guardamos que el ejercicio estaba (casi) correcto; allí también puede eliminarlo.

Ejercicio D4.2: Actualizar y limpiar su sitio web. Inicie sesión en la administración de su sitio web, compruebe la versión de su CMS, plugins y temas, elimine lo que no use y active las actualizaciones automáticas donde sea posible. Marque la lista de comprobación y responda a la pregunta de reflexión.

Ejercicio D4.2: Actualizar y limpiar su sitio web

Así se hace: (1) Inicie sesión en la administración de su sitio web (o pida a su desarrollador web que lo haga con usted). (2) Anote la versión de su CMS y compruebe si hay actualizaciones pendientes. (3) Haga una copia de seguridad (lección 6.1), instale las actualizaciones del CMS, los plugins y los temas. (4) Elimine los plugins y temas que no utilice. (5) Active las actualizaciones automáticas donde sea posible. (6) Compruebe qué cuentas de administrador existen y elimine las de personas que ya no trabajen allí. (7) Active la verificación en dos pasos (2FA) para cada cuenta de administrador.




Sus marcas y notas se quedan solo en este navegador; no las enviamos a ningún sitio. Si ha iniciado sesión, en Mis cursos solo guardamos que ha realizado el ejercicio.

Para saber más

Los pasos de los artículos de WebOké se aplican al entorno de WebOké; en otros proveedores funciona de forma similar.

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…