Skip to main content
Glama

MCP HTTP TAVILY DATE OAUTH

by growley
SECURITY_IMPROVEMENTS.md4.75 kB
# 🔐 Mejoras de Seguridad - Tokens Seguros ## 🚨 **Problema Identificado** El sistema anterior exponía los tokens de acceso en la URL después del login: ``` http://localhost:8001/auth/success?access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` ### **Riesgos de Seguridad:** - ✅ **Logs del servidor**: Los tokens aparecen en logs de acceso - ✅ **Historial del navegador**: Los tokens se guardan en el historial - ✅ **Referrers**: Los tokens pueden ser enviados a otros sitios - ✅ **Analytics**: Los servicios de tracking pueden capturar URLs - ✅ **Compartir enlaces**: Riesgo de compartir tokens accidentalmente ## ✅ **Solución Implementada** ### **1. Cookies HTTP-Only Seguras** Los tokens ahora se almacenan en cookies seguras con las siguientes características: ```python response.set_cookie( key="access_token", value=access_token, httponly=True, # No accesible desde JavaScript secure=True, # Solo HTTPS (en producción) samesite="lax", # Protección CSRF max_age=3600 # 1 hora de expiración ) ``` ### **2. Características de Seguridad:** - **`httponly=True`**: Las cookies no son accesibles desde JavaScript (protege contra XSS) - **`secure=True`**: Solo se envían por HTTPS en producción - **`samesite="lax"`**: Protege contra ataques CSRF - **Expiración limitada**: Access token: 1 hora, Refresh token: 30 días ### **3. Limpieza Automática de URL** La página de éxito ahora: - ✅ Almacena los tokens en cookies seguras - ✅ Limpia la URL automáticamente - ✅ Muestra confirmación de seguridad - ✅ Redirige a páginas de prueba ## 🔧 **Nuevas Funcionalidades** ### **1. Página de Pruebas Mejorada** - **URL**: `http://localhost:8001/test-page` - **Autenticación**: Automática via cookies - **Herramientas disponibles**: Todas las herramientas MCP - **Interfaz**: Amigable y fácil de usar ### **2. Autenticación Dual** El sistema ahora soporta: - **Header Authorization**: `Authorization: Bearer <token>` - **Cookies HTTP-Only**: Automático para navegadores ### **3. Middleware Mejorado** - Busca tokens en headers primero - Si no encuentra, busca en cookies - Mantiene compatibilidad con APIs existentes ## 📋 **Guía de Uso** ### **Para Navegadores (Recomendado):** 1. Ve a `http://localhost:8001/login` 2. Autentícate con Google/GitHub 3. Los tokens se almacenan automáticamente en cookies 4. Ve a `http://localhost:8001/test-page` para probar 5. **No necesitas copiar/pegar tokens manualmente** ### **Para APIs/Clientes:** ```bash # Método 1: Header Authorization (como antes) curl -H "Authorization: Bearer <token>" http://localhost:8001/mcp # Método 2: Cookies (automático en navegadores) # Las cookies se envían automáticamente ``` ## 🛡️ **Mejores Prácticas de Seguridad** ### **1. Para Desarrollo:** - ✅ Usar `http://localhost:8001/test-page` para pruebas - ✅ Los tokens no aparecen en URLs - ✅ Cookies seguras configuradas ### **2. Para Producción:** - ✅ **HTTPS obligatorio**: `secure=True` requiere HTTPS - ✅ **Dominio específico**: Configurar dominio en cookies - ✅ **CSP headers**: Content Security Policy - ✅ **Rate limiting**: Limitar peticiones por IP ### **3. Configuración Recomendada:** ```python # En producción, agregar: response.set_cookie( key="access_token", value=access_token, httponly=True, secure=True, # Solo HTTPS samesite="strict", # Máxima protección CSRF domain="tudominio.com", # Dominio específico max_age=3600 ) ``` ## 🔍 **Verificación de Seguridad** ### **1. Verificar Cookies:** ```javascript // En DevTools > Application > Cookies // Deberías ver: // - access_token: [valor] (HttpOnly: true, Secure: true) // - refresh_token: [valor] (HttpOnly: true, Secure: true) ``` ### **2. Verificar Headers:** ```bash # Las peticiones deben incluir: Cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ``` ### **3. Verificar Logs:** - ✅ **Antes**: Tokens visibles en logs de acceso - ✅ **Después**: Solo referencias a cookies, no valores ## 🚀 **Próximos Pasos** 1. **Probar la nueva página**: `http://localhost:8001/test-page` 2. **Verificar que funciona**: Probar todas las herramientas 3. **Configurar HTTPS**: Para producción 4. **Implementar rate limiting**: Para proteger contra abuso 5. **Añadir CSP headers**: Para protección adicional ## 📚 **Referencias** - [OWASP Cookie Security](https://owasp.org/www-community/controls/SecureCookieAttribute) - [FastAPI Security](https://fastapi.tiangolo.com/tutorial/security/) - [HTTP Security Headers](https://securityheaders.com/) --- **✅ Resultado**: Los tokens ya no se exponen en URLs y se almacenan de forma segura en cookies HTTP-Only.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/growley/MCP_TAVILI_DATE_OAUT'

If you have feedback or need assistance with the MCP directory API, please join our Discord server