Volver a herramientas

¿Qué es .htpasswd?

.htpasswd es un archivo plano utilizado por el servidor web Apache HTTP para almacenar nombres de usuario y contraseñas con el fin de autenticación básica HTTP. El archivo fue implementado por primera vez en el servidor NCSA HTTPd, predecesor de Apache. Cada línea contiene un nombre de usuario, seguido de dos puntos y la contraseña hasheada con un algoritmo como bcrypt, SHA-1 o MD5.

En Apache 2.4 se agregó soporte para bcrypt, el único algoritmo que sigue considerándose seguro hoy en día. El archivo se referencia desde la configuración .htaccess y puede proteger directorios completos o archivos específicos.

Algoritmos disponibles

  • Bcrypt: Recomendado. Utiliza un salt automático y permite configurar el costo computacional. Es resistente a ataques de fuerza bruta.
  • SHA-1: Genera hashes SHA-1. Compatible con la mayoría de sistemas legacy, pero considerado obsoleto para almacenamiento de contraseñas.
  • MD5: Solo para compatibilidad legacy. Muy rápido y no resistente a ataques. Solo usar si el sistema lo requiere.

Casos de uso comunes

  • Protección de directorios administrativos: Restringir el acceso al panel de administración o áreas sensibles de un sitio web mediante autenticación básica.
  • Entornos de staging y desarrollo: Bloquear el acceso público a versiones de preproducción o sitios en desarrollo con una capa adicional de seguridad.
  • Repositorios privados en servidores web: Limitar la descarga de archivos o documentación solo a usuarios autorizados.
  • Autenticación simple sin base de datos: Implementar un sistema básico de inicio de sesión sin necesidad de una base de datos o infraestructura adicional.