Saltar al contenido principal
Crear aplicaciones seguras protege tanto a tus usuarios como a la plataforma X. Esta guía cubre las prácticas de seguridad esenciales para desarrolladores de X API.

Requisitos principales

TLS obligatorio

Todas las solicitudes a la API deben usar HTTPS. Cualquier solicitud mediante HTTP sin cifrar será rechazada.

Seguridad de credenciales

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

Protección de credenciales

Tus claves y tokens de la API son las llaves de acceso a tu App. Manténlos 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 hagas commit de secretos

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

Rota las claves con regularidad

Regenera las claves periódicamente e inmediatamente si sospechas un compromiso de seguridad.
4

Usa permisos mínimos

Solicita solo los permisos de OAuth que tu App realmente necesita.

Si se ven comprometidas las credenciales

  1. Vuelve a generarlas de inmediato en la Consola de desarrollador
  2. Revoca los tokens anteriores — al regenerarlos, se invalidan automáticamente las credenciales anteriores
  3. Revisa el uso — comprueba si hay actividad de API no autorizada
  4. Actualiza tu aplicación — despliega las nuevas credenciales en todos los entornos

Seguridad de la aplicación

Validación de entrada

Nunca confíes en los datos proporcionados por los usuarios. Valida y sanitiza todos los datos antes de usarlos:
# Bad - vulnerable to injection
query = f"from:{user_input}"

# Bueno - validar 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 X API antes de mostrarlos en HTML para evitar XSS:
// Incorrecto - vulnerable a XSS
element.innerHTML = tweet.text;

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

Vulnerabilidades comunes que se deben prevenir

VulnerabilidadPrevención
XSSEscapar todo el contenido generado por el usuario antes de renderizarlo
CSRFUsar tokens anti-CSRF en los formularios; verificar el parámetro state de OAuth
SQL InjectionUsar consultas parametrizadas, nunca concatenar la entrada del usuario
Open redirectsValidar las URLs de callback contra una lista de permitidos

Seguridad en OAuth

Parámetro state

Utiliza siempre el parámetro state en los flujos OAuth para evitar ataques CSRF:
import secrets

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

# Verificar estado después de la devolución de llamada
if request.args.get('state') != session.get('oauth_state'):
    abort(403)  # El estado no coincide - posible CSRF

Almacenamiento de tokens

Tipo de tokenRecomendación de almacenamiento
Tokens de accesoBase de datos cifrada o bóveda segura
Tokens de actualizaciónBase 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 de forma regular.

Análisis de dependencias

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

Registro

Registra los eventos de seguridad, pero nunca registres credenciales ni datos confidenciales.

Supervisión

Configura alertas para patrones inusuales de uso de la API.

Informar incidentes de seguridad

Si descubres una vulnerabilidad de seguridad que afecte a X:
Infórmala en un plazo de 48 horas. Los usuarios de X Developer Platform deben notificar a X en un máximo de 48 horas después de sospechar un incidente de seguridad.

X Bug Bounty

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

Incidente de tu app

Si tu app que usa datos de X se ve comprometida, informa a través del 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 en registros)
  • Tokens de usuario cifrados en reposo
  • Validación de entrada en todos los datos proporcionados por el usuario
  • Codificación de salida para prevenir XSS
  • Protección CSRF en los flujos de OAuth
  • Registro de seguridad habilitado (sin datos sensibles)
  • Plan de respuesta a incidentes documentado
  • Dependencias actualizadas con regularidad
  • Se solicitan solo los permisos mínimos de OAuth

Recursos

Guía de autenticación

Implementa correctamente OAuth.

Permisos de la App

Configura los permisos mínimos necesarios.