🔐 Autenticación HTTP Basico

Sistema Base64

Sistema de Autenticación Base64

Aprende y prueba cómo funciona la autenticación básica HTTP utilizando codificación Base64 para proteger tus APIs y servicios web.

🔑 Clave de Autenticación (Base64)
YXBpS2V5OnNlY3JldEtleQ==
🔓 Credenciales Decodificadas
apiKey:secretKey

🛡️¿Qué es Base64?

Base64 es un esquema de codificación que convierte datos binarios en texto ASCII utilizando 64 caracteres específicos (A-Z, a-z, 0-9, +, /). Esto permite transmitir datos de forma segura a través de canales que solo soportan texto.

🔐Autenticación HTTP Basic

La autenticación básica HTTP utiliza el esquema Base64 para codificar credenciales en el formato username:password. Este valor codificado se envía en el header Authorization de cada petición HTTP.

⚠️Consideraciones de Seguridad

Base64 es codificación, no encriptación. Las credenciales pueden decodificarse fácilmente. Siempre usa HTTPS/TLS para proteger la transmisión de datos cuando implementes autenticación básica.

ℹ️
Formato del Header: Las peticiones HTTP deben incluir el header Authorization: Basic YXBpS2V5OnNlY3JldEtleQ==

🧪Herramienta de Codificación/Decodificación

Resultado


                    

🚀Probador de Peticiones HTTP

⚠️
Nota: Asegúrate de que la API de destino permita CORS para peticiones desde el navegador. Algunas APIs públicas pueden no responder correctamente debido a restricciones de seguridad.

Estado de la Respuesta

Headers Enviados


                    

Headers Recibidos


                    

Cuerpo de la Respuesta


                    

Introducción a la Autenticación Basic

La autenticación básica HTTP es un método simple para controlar el acceso a recursos web. Utiliza el header Authorization con el esquema Basic seguido de las credenciales codificadas en Base64.

Formato del Header Authorization
Authorization: Basic <credenciales_base64>

Las credenciales se codifican en el formato username:password antes de aplicar la codificación Base64.

Implementación en JavaScript

1. Codificación de Credenciales
// Codificar credenciales a Base64
const username = 'apiKey';
const password = 'secretKey';
const credentials = `${username}:${password}`;
const encodedCredentials = btoa(credentials);

console.log(encodedCredentials); 
// Output: YXBpS2V5OnNlY3JldEtleQ==
2. Decodificación de Credenciales
// Decodificar credenciales desde Base64
const encodedCredentials = 'YXBpS2V5OnNlY3JldEtleQ==';
const decodedCredentials = atob(encodedCredentials);

console.log(decodedCredentials); 
// Output: apiKey:secretKey
3. Petición GET con Autenticación
// Realizar petición GET con autenticación básica
const url = 'https://api.ejemplo.com/data';
const authKey = 'YXBpS2V5OnNlY3JldEtleQ==';

fetch(url, {
    method: 'GET',
    headers: {
        'Authorization': `Basic ${authKey}`,
        'Content-Type': 'application/json'
    }
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
4. Petición POST con Autenticación
// Realizar petición POST con autenticación básica
const url = 'https://api.ejemplo.com/create';
const authKey = 'YXBpS2V5OnNlY3JldEtleQ==';
const payload = {
    nombre: 'Usuario',
    email: 'user@ejemplo.com'
};

fetch(url, {
    method: 'POST',
    headers: {
        'Authorization': `Basic ${authKey}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

Mejores Prácticas

Recomendaciones

  • Siempre usa HTTPS: La codificación Base64 no es encriptación. Las credenciales pueden interceptarse en conexiones HTTP sin cifrar.
  • Valida credenciales: Implementa validación robusta en el servidor para verificar las credenciales decodificadas.
  • Manejo de errores: Implementa manejo apropiado de errores 401 (No autorizado) y 403 (Prohibido).
  • Tokens de corta duración: Considera usar tokens de acceso con expiración en lugar de credenciales permanentes.
  • Rate limiting: Implementa límites de tasa para prevenir ataques de fuerza bruta.

🔒Consideraciones de Seguridad

  • Base64 es reversible: cualquiera puede decodificar las credenciales si intercepta el header.
  • No almacenes credenciales en el código fuente: usa variables de entorno o sistemas de gestión de secretos.
  • Implementa autenticación de dos factores (2FA) cuando sea posible.
  • Monitorea intentos de acceso fallidos para detectar posibles ataques.
  • Considera OAuth 2.0 o JWT para aplicaciones más complejas que requieran mayor seguridad.

Códigos de Estado HTTP

Código Significado Descripción
200 OK Petición exitosa con autenticación válida
401 Unauthorized Credenciales inválidas o faltantes
403 Forbidden Acceso denegado incluso con credenciales válidas
500 Internal Server Error Error en el servidor al procesar la petición