Café y Código

2. Privacidad y Datos Sensibles 🔒

¿Por qué importa la privacidad al usar IA?

Cada vez que escribís un prompt, seleccionás código o dejás que tu IDE envíe telemetría, estás compartiendo información con servidores externos. Dependiendo de la herramienta y su configuración, esa información puede ser almacenada, procesada o incluso utilizada para entrenar futuros modelos.

"Lo que le enviás a la IA no se queda solo entre vos y la pantalla. Tratá cada prompt como si fuera público."

🚫 Lo que NUNCA debes enviar a la IA

Independientemente de la herramienta que uses (Copilot, Cursor, Antigravity, Claude, ChatGPT), estos datos deben permanecer fuera de cualquier prompt o ventana de contexto:

🛑 Datos Prohibidos

  • Credenciales y Secretos: API keys, tokens de autenticación, contraseñas, certificados SSL, credenciales de bases de datos.
  • Datos Personales (PII/GDPR): Nombres de clientes reales, correos electrónicos, teléfonos, RUTs, datos financieros.
  • Código Propietario Confidencial: Algoritmos protegidos por NDA o acuerdos de confidencialidad.
  • Bases de Datos Reales: Dumps de producción, registros de logs con información sensible.

Ejemplo: Cómo se filtra una API Key

Parece inocente, pero ocurre constantemente. Un desarrollador pega su archivo .env en el chat para "pedir ayuda con la conexión":

❌ Nunca hagas esto
BASH
1 # .env (PRODUCCIÓN)
2 DATABASE_URL=postgresql://admin:s3cr3t_p4ss@prod-db.ejemplo.com:5432/clientes
3 STRIPE_KEY=TU_CLAVE_REAL_DE_STRIPE_AQUI
4 JWT_SECRET=mi_super_secreto_jwt_2024

En lugar de enviar el archivo real, sanitizá el contexto antes de compartirlo:

✅ Versión sanitizada
BASH
1 # .env.example (SEGURO para compartir)
2 DATABASE_URL=postgresql://user:password@localhost:5432/mi_base
3 STRIPE_KEY=XXXXXXXXXXXXXXXX
4 JWT_SECRET=tu_secreto_aqui

✅ Lo que SÍ puedes enviar

💚 Información Segura

  • Estructuras de datos y firmas de métodos: Interfaces, tipos, declaraciones de clases vacías.
  • Pseudocódigo y lógica algorítmica general: "¿Cómo ordenar una lista de objetos por fecha en JS?"
  • Datos ficticios (dummy/mock): [{ id: 1, name: "User A", email: "user@example.com" }]
  • Mensajes de error sanitizados: Stack traces sin rutas absolutas ni nombres de usuario del sistema.

Práctica: Sanitizar un prompt real

Supongamos que querés pedir ayuda con un error de conexión a Supabase. Este es el prompt malo:

❌ Prompt inseguro
TEXT
1 Tengo este error al conectar:
2 Error: connect ECONNREFUSED 192.168.1.45:5432
3 Mi connection string es:
4 postgresql://admin_carlos:C4rl0s_2024!@192.168.1.45:5432/ventas_produccion

Y este es el prompt correcto:

✅ Prompt seguro
TEXT
1 Tengo un error ECONNREFUSED al conectar a PostgreSQL con Supabase.
2 Connection string tiene formato: postgresql://user:pass@host:5432/dbname
3 ¿Qué puede causar este error y cómo lo depuro?

Configuraciones de Privacidad en los IDEs

La mayoría de herramientas de IA permiten ajustar qué datos se comparten:

Herramienta Configuración clave
GitHub Copilot Settings → Copilot → desactivar "Allow GitHub to use my code snippets for product improvements".
Cursor Settings → Privacy → activar "Privacy Mode" para que no se indexe el codebase.
ChatGPT / Claude Desactivar "Improve the model for everyone" en la configuración de la cuenta.

🔒 Desafío: Revisá tu entorno

Abrí la configuración de privacidad de la herramienta de IA que usás (Copilot, Cursor, etc.) y verificá que la telemetría y el entrenamiento de modelos estén desactivados. Revisá tu archivo .gitignore para asegurar que .env no se suba al repositorio.

Quiz: Privacidad y Datos

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.