Proteger una web con contraseña mediante .htaccess y .htpasswd – Mantenimiento y acceso

Cómo activar un modo de mantenimiento seguro y limitar el acceso a determinados usuarios

Cuando desarrollas una web, revisas contenidos o quieres enseñar una página nueva a un cliente antes de publicarla, no debería estar disponible para todos los visitantes. Una solución sencilla y muy extendida es protegerla con contraseña mediante .htaccess y .htpasswd. Esta protección funciona en el servidor e impide que los visitantes sin credenciales vean el contenido de la web.

En este artículo explico paso a paso cómo funciona la protección con contraseña, cuándo resulta útil, cuáles son sus ventajas y desventajas y qué alternativas existen. Al terminar podrás proteger de forma segura y correcta toda la web o determinadas subcarpetas mediante .htaccess.

¿Qué es un archivo .htaccess?

El archivo .htaccess es un archivo de configuración utilizado principalmente por servidores web como Apache y LiteSpeed. Se encuentra en la carpeta de la web y permite aplicar ajustes en el servidor sin modificar su configuración principal.

Funciones habituales del archivo .htaccess:

  • Activar la protección con contraseña
  • Crear redirecciones y reglas de reescritura
  • Configurar el almacenamiento en caché
  • Definir páginas de error
  • Permitir o bloquear el acceso desde determinadas direcciones IP

El archivo .htaccess es ideal para proteger con contraseña porque se configura rápidamente y no requiere modificar directamente el servidor.

¿Qué es un archivo .htpasswd?

El archivo .htpasswd contiene usuarios y contraseñas cifradas que el servidor web utiliza para la autenticación. Se guarda por separado, normalmente fuera del directorio web público, para que no pueda consultarse desde el exterior.

Ejemplo:

user:secret
#beispiel: test:test123242345
test: $apr1$547x6czg$ZOB.RvFfT2JdN1KfOvuUF0

Importante:
Las contraseñas se guardan cifradas. Los formatos de Apache con MD5, SHA o bcrypt son los más habituales. Nunca deben almacenarse contraseñas sin cifrar.

Puedes generar las contraseñas mediante:

  • generadores de htpasswd
  • Consola de Linux: htpasswd -nb usuario contraseña
  • herramientas en línea con SSL, solo para pruebas

¿Dónde debe guardarse el archivo .htpasswd?

El archivo .htpasswd debe estar siempre fuera de la raíz web pública, nunca en /public_html, /www ni /htdocs. Un ejemplo de ruta segura sería:

/home/username/secure/.htpasswd

O bien, en entornos de alojamiento:

/var/www/.secrets/htpasswd

La ruta debe elegirse de modo que no sea accesible desde el navegador.

Protección con contraseña mediante .htaccess – Ejemplo

La configuración básica tiene este aspecto:

AuthUserFile /home/benutzer/secure/.htpasswd
AuthGroupFile /dev/null
AuthName "Passwortgeschuetzter Bereich"
AuthType Basic
Require valid-user

En cuanto este archivo se encuentre en la carpeta deseada, dicha carpeta y todas sus subcarpetas quedarán protegidas.

¿Se pueden proteger solo subcarpetas?

Sí, es una práctica muy habitual. Si tienes una versión beta en la subcarpeta /vista-previa, crea allí un archivo .htaccess propio. El resto de la web seguirá siendo accesible.

Protección con contraseña para dominios o subdominios concretos

También funciona sin problemas. Cada dominio y subdominio puede utilizar sus propios archivos .htaccess. De este modo puedes proteger por completo un dominio de pruebas mientras el dominio principal permanece abierto.

Ejemplo de configuración según el dominio:

SetEnvIf Host my-domain.test passreq

AuthType Basic
AuthName "Password Required"
AuthUserFile /home/user1234/meinewebsite/htpwd/.htpasswd

Require valid-user

Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any

Así puedes decidir en función del nombre de dominio si se necesita una contraseña.

¿Con qué servidores web funciona?

El método .htaccess funciona con:

  • Apache
  • LiteSpeed
  • OpenLiteSpeed, con algunas limitaciones

.htaccess no es compatible con:

  • Nginx
  • IIS (Microsoft)

En Nginx, la protección con contraseña debe configurarse en la configuración del servidor y no mediante .htaccess.

Ventajas y desventajas de la protección mediante .htaccess

VentajaDesventaja
Muy fácil de configurarNo funciona con Nginx sin acceso a la configuración del servidor
No necesita plugins ni programasLa ventana de inicio de sesión no se puede personalizar
Protección en el servidorBasic Auth envía el nombre de usuario y la contraseña codificados, pero no cifrados
Ideal para un modo de mantenimiento o una vista previa protegidaNo es seguro sin HTTPS
Funciona para webs completas o carpetas concretasPuede ralentizar los sistemas de caché

Importante:
Utiliza siempre HTTPS para que las credenciales se transmitan cifradas.

¿Qué seguridad ofrece la protección con contraseña?

Cuando está bien configurada, Basic Auth ofrece una seguridad adecuada para páginas de vista previa, herramientas internas o entornos de desarrollo. Sin embargo, no sustituye a un sistema de inicio de sesión complejo para áreas de miembros o aplicaciones web.

Recomendaciones para obtener la máxima seguridad:

  • Activar HTTPS
  • Generar las contraseñas con bcrypt
  • Guardar el archivo .htpasswd fuera del directorio web
  • Utilizar además una lista blanca de IP, si es necesario

¿Qué alternativas existen?

Lista blanca de direcciones IP

Permitir el acceso únicamente desde determinadas direcciones IP:

Order deny,allow
Deny from all
Allow from 123.123.123.123

Plugin de modo de mantenimiento

Para WordPress, Joomla, Shopware y otros CMS existen plugins que muestran un modo de mantenimiento con una plantilla propia.

Autenticación en el servidor (Nginx)

En Nginx, la autenticación se define en server.conf.

Protección con contraseña desde el panel de alojamiento

Plesk y cPanel ofrecen funciones propias para proteger directorios con contraseña.

Restricción de acceso mediante passkey o token

Los entornos de desarrollo modernos pueden utilizar enlaces con token en lugar de solicitar una contraseña.

Este artículo ha sido traducido con ayuda de IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll to Top