Skip to main content
Crear aplicaciones seguras protege tanto a tus usuarios como a la plataforma X. Esta guía cubre las prácticas de seguridad esenciales para los desarrolladores de la X API.

Requisitos básicos

TLS obligatorio

Todas las solicitudes a la API deben usar HTTPS. El HTTP plano es rechazado.

Seguridad de credenciales

Nunca expongas claves o tokens de API en código del lado del cliente, registros o repositorios.

Proteger las credenciales

Tus claves y tokens de la API son las llaves de tu app. Mantenlos seguros:
1

Usa variables de entorno

Almacena las credenciales en variables de entorno, no en el código.
export X_API_KEY="your-api-key"
export X_API_SECRET="your-api-secret"
2

Nunca confirmes secretos

Agrega los archivos de credenciales a .gitignore. Usa herramientas como git-secrets para evitar confirmaciones accidentales.
3

Rota regularmente

Regenera las claves periódicamente e inmediatamente si sospechas que están comprometidas.
4

Usa permisos mínimos

Solicita solamente los scopes de OAuth que tu app realmente necesite.

Si las credenciales se ven comprometidas

  1. Regenera inmediatamente en la Developer Console
  2. Revoca los tokens antiguos: regenerar automáticamente invalida las credenciales antiguas
  3. Audita el uso: verifica si hay actividad no autorizada en la API
  4. Actualiza tu app: despliega las nuevas credenciales en todos los entornos

Seguridad de la aplicación

Validación de entradas

Nunca confíes en la entrada del usuario. Valida y sanitiza todos los datos antes de usarlos:
# Mal - vulnerable a inyección
query = f"from:{user_input}"

# Bien - valida la entrada primero
import re
if re.match(r'^[a-zA-Z0-9_]{1,15}$', user_input):
    query = f"from:{user_input}"

Codificación de salida

Escapa los datos de la X API antes de mostrarlos en HTML para prevenir XSS:
// Mal - vulnerable a XSS
element.innerHTML = tweet.text;

// Bien - escapar HTML
element.textContent = tweet.text;

Vulnerabilidades comunes a prevenir

VulnerabilidadPrevención
XSSEscapa todo el contenido generado por usuarios antes de renderizar
CSRFUsa tokens anti-CSRF en formularios; verifica el parámetro state de OAuth
Inyección SQLUsa consultas parametrizadas, nunca concatenes la entrada del usuario
Open redirectsValida las URLs de callback contra una lista de permitidas

Seguridad de OAuth

Parámetro state

Usa siempre el parámetro state en los flujos de OAuth para prevenir CSRF:
import secrets

# Generar state antes de la autorización
state = secrets.token_urlsafe(32)
session['oauth_state'] = state

# Verificar state después del callback
if request.args.get('state') != session.get('oauth_state'):
    abort(403)  # State no coincide - posible CSRF

Almacenamiento de tokens

Tipo de tokenRecomendación de almacenamiento
Access tokensBase de datos cifrada o vault seguro
Refresh tokensBase de datos cifrada con controles de acceso adicionales
Bearer tokensVariables de entorno o configuración segura

Prácticas de desarrollo seguro

Auditorías de seguridad

Realiza revisiones de seguridad y pruebas de penetración periódicas.

Análisis de dependencias

Mantén las dependencias actualizadas. Usa herramientas para detectar paquetes vulnerables.

Logging

Registra eventos de seguridad pero nunca registres credenciales ni datos sensibles.

Monitoreo

Configura alertas para patrones inusuales de uso de la API.

Reportar problemas de seguridad

Si descubres una vulnerabilidad de seguridad que afecte a X:
Reporta en un plazo de 48 horas. Los usuarios de la X Developer Platform deben notificar a X en un plazo no mayor a 48 horas tras sospechar un incidente de seguridad.

X Bug Bounty

Reporta vulnerabilidades en los sistemas de X a través de HackerOne.

Incidente en tu app

Si tu app que usa datos de X sufre una brecha, repórtalo por el mismo canal.

Lista de verificación de cumplimiento

  • Todas las solicitudes a la API usan TLS/HTTPS
  • Credenciales almacenadas de forma segura (no en código ni logs)
  • Tokens de usuario cifrados en reposo
  • Validación de entradas en todos los datos proporcionados por usuarios
  • Codificación de salida para prevenir XSS
  • Protección CSRF en los flujos de OAuth
  • Logging de seguridad habilitado (sin datos sensibles)
  • Plan de respuesta a incidentes documentado
  • Dependencias actualizadas periódicamente
  • Scopes mínimos de OAuth solicitados

Recursos

Guía de autenticación

Implementa OAuth correctamente.

Permisos de la app

Configura los permisos mínimos requeridos.