Asiste al evento de SEO más avanzado del año

Bloquear una web por contraseña

Aprende a proteger un directorio o un dominio por contraseña desde el servidor

Autor:
Carlos Sánchez
Temática:
Rastreo
,
Servidores
Fecha de publicación:
2023-03-11

Última revisión:
2023-11-07

Bloquear una web por contraseña desde el servidor es la mejor forma de impedir el rastreo y la indexación de una página.
Esto además resulta de gran utilidad para webs en desarrollo o sus versiones testing.

La gran pregunta ante esto suele ser como hacer dicha implementación. Así que os presento varias.

Plesk o cpanel

Muchas webs que emplean un panel de control como plesk o cpanel tienen directamente esta opción integrada, por lo que realmente el esfuerzo o complejidad para realizar dicha implementación es mínima. Se añade el directorio que se quiere proteger (si es todo el proyecto pues todo) y se añaden los usuarios.

directorios protegidos en plesk

Apache

En Apache lo ideal es hacerlo por medio del .htaccess en la carpeta ROOT del proyecto para bloquear toda la web, o en el directorio concreto a bloquear, aunque también se puede hacer por medio de un location/locationmatch.

Entonces se deben poner las siguientes líneas:

AuthUserFile /home/stage/web/domain/public_html/.htpasswd
AuthType Basic
AuthName "Prueba a entrar"
Require valid-user

Una vez tengamos estas líneas tenemos la base, pero está incompleto. Ya que no se podrá entrar en la web puesto que no existe ningún usuario válido. Así que el siguiente paso es crearlo. Para ello tenemos que hacer el listado.

Htpasswd

El listado lo tenemos que hacer en un archivo llamado .htpasswd ; que para el que no sea fanático de la encriptación le recomiendo generar los usuarios con este generador de htpasswd que además permite hacerlo con distintas formas de encriptación.

Para ponerlo correctamente seguimos los siguientes pasos:

Ahora tenemos el listado de usuarios válidos, pero tenemos que conectarlo con el Authuserfile.
Así que para conocer la ruta exacta de nuestro archivo .htpasswd en el caso de que nuestra web funcione con PHP (si no se hace lo mismo con el lenguaje correspondiente). Creamos un archivo index.php en la misma carpeta que el .htpasswd y añadimos el siguiente código:

<?php echo dirname(__FILE__) . '/.htpasswd';?>

Accedemos a la carpeta por medio de URL y entonces nos saldrá una ruta:

 

contraseña en servidor

Copiamos esta ruta y la insertamos en el Authuserfile y ya funcionará a la perfección.

¿No lo estás entendiendo?
Si quieres aprender a aplicar todo esto y mucho más, accede a mi formación: ¡Aprende SEO de verdad!

Nginx

Aplicando los mismos pasos que en apache con el .htpasswd pero aplicando el siguiente código dentro de server{} en el nginx.conf

location /ruta/a/tu/pagina {
auth_basic "Acceso restringido";
auth_basic_user_file /ruta/al/archivo/.htpasswd;
}

La otra diferencia es que para que esta implementación funcione, deberías hacer un reload en nginx (o en casos extremos reiniciarlo).

Azure Static Web Apps

Azure Static Web APPs, funciona un poco distinto al resto de servidores, veamos como se hace trasteando los siguientes json.

Crea una función de autentificación

En Azure Static Web Apps, las funciones se utilizan para implementar lógica personalizada en la aplicación web. Para crear una función de autenticación, sigue estos pasos:

module.exports = async function (context, req) {
const username = req.body.username;
const password = req.body.password;
if (username === 'username' && password === 'password') {
context.res = {
status: 200,
body: "Authenticated"
};
} else {
context.res = {
status: 401,
body: "Unauthorized"
};
}
};

Este código simplemente comprueba si las credenciales proporcionadas coinciden con un nombre de usuario y contraseña específicos y devuelve un estado de autenticación o no autenticación.

Configura la función de autenticación:

Para configurar la función de autenticación, debes especificar la ruta que protegerá la función. Para hacer esto, crea un archivo routes.json en la raíz de tu proyecto y agrega el siguiente código:

{
"routes": [
{
"route": "/subdominio/*",
"allowedRoles": ["anonymous"],
"methods": ["GET", "POST"],
"authLevel": "function",
"functionName": "nombre-de-tu-función-de-autenticación"
}
]
}

Este archivo configura la función de autenticación para proteger todas las rutas bajo el subdominio subdominio y para permitir que cualquier usuario con un rol de "anonymous" acceda a ellas. También especifica que la autenticación se realizará a través de la función que creaste anteriormente.

Crea un archivo de configuración de acceso:

Para especificar los usuarios y contraseñas que tendrán acceso al subdominio protegido, crea un archivo de configuración de acceso. Puedes hacerlo directamente en el archivo routes.json o utilizando un servicio de almacenamiento como Azure Blob Storage. Para este ejemplo, crearemos un archivo access.json directamente en el proyecto.

Agrega el siguiente código al archivo:

{
"users": [
{
"username": "usuario1",
"password": "contraseña1"
},
{
"username": "usuario2",
"password": "contraseña2"
}
]
}

Este archivo especifica dos usuarios, cada uno con un nombre de usuario y contraseña. Puedes agregar tantos usuarios como desees. Sería un equivalente al htpasswd.

Configura el archivo de configuración de acceso:

Por último, debes modificar la función de autenticación para que verifique las credenciales del usuario en el archivo de configuración de acceso. Para hacer esto, reemplaza el código en la función de autentic.

Una vez que hayas completado estos pasos, tu subdominio estará protegido con contraseña y solo los usuarios autorizados podrán acceder a él. Es importante tener en cuenta que estos pasos pueden variar según la versión de Azure Static Web Apps que se esté utilizando.
Por eso recomiendo consultar la documentación oficial de Azure Static Web Apps para obtener información un poco más detallada.

Si quieres aprender esto de una forma más avanzada o con alguien que te ayude paso a paso, descubre que se puede ver esto y mucho más en el máster de SEO. Una formación práctica de verdad, donde aplicas todos los cambios en una web y eres supervisado.

Si te gusta este artículo, me ayudarías un montón compartiendo mi contenido:
No se te da mal el SEO Técnico

Te falta mi máster. Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB

¡Accede al Máster de SEO Técnico!
Tal vez te interesen otros artículos:
Artículos de SEO

Si te ha gustado esta publicación, siempre me lo puedes agradecer dándome like en esta publicación de LinkedIn sobre este mismo artículo.

Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Aquí tienes nuestra política de privacidad.