¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Seguridad y privacidad con asistentes de código

Después de esta lección: Puedo decir qué no debo pegar en un asistente y qué fallos de seguridad debo buscar en lo que genera.

Lección de 60 min3 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Lo que pegas sale de tu ordenador

Usar un asistente de código con seguridad y privacidad es decidir qué datos le das y revisar qué fallos de seguridad trae lo que devuelve. Lo que escribes en una petición viaja a otro servidor junto con tu código.

Un equipo de una gestoría de Bilbao pega un archivo de configuración entero para pedir ayuda. El archivo incluye la clave de su base de datos.

Al final de esta lección

Nota

Puedo decir qué no debo pegar en un asistente y qué fallos de seguridad debo buscar en lo que genera.

Palabras clave

PalabraQué significaEjemplo
Secretodato que da acceso y no debe verlo nadie másuna contraseña
Dato personaldato que identifica a una persona
Inyección SQLtexto de un usuario que cambia una consulta
Dependenciauna biblioteca de otra persona que usa tu programa
Variable de entornoun valor que el sistema guarda fuera del código

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

No pegues secretos ni datos de otras personas

Una petición se envía a un servicio externo con todo su contexto. Trátala como un mensaje que sale de tu empresa o de tu centro.

No pegues contraseñas, claves de acceso, ni datos reales de clientes o estudiantes. Si necesitas ayuda con un archivo, cambia antes cada secreto por un valor falso.

Ejemplo: qué pegar y qué no

Contenido¿Se pega?Qué haces en su lugar
Una función sin datos realesSíNada: es lo que quieres enseñar
La clave de tu base de datosNoEscribe "CLAVE_FALSA" en su lugar
Una lista de clientes con nombresNoInventa tres filas de ejemplo
El error de una consolaSí, revisadoQuita rutas y nombres de personas

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un error frecuente

Advertencia

Mucha gente cree que un secreto pegado por error queda a salvo si borra la conversación. No es así. Una vez enviado, trátalo como visto por otras personas: cámbialo de inmediato y avisa a quien administra el sistema.

El código generado repite fallos de seguridad conocidos

Un asistente copia patrones de mucho código, y parte de ese código es inseguro. Por eso conviene buscar los mismos fallos que en cualquier otro código.

Los más habituales son tres. Una consulta montada con texto del usuario, una clave escrita en el código y una dependencia que no existe.

Dos formas de escribir una consulta

Código: python
# Ejemplo inventado: dos formas de escribir una consulta. Solo se imprimen textos.
def consulta_insegura(nombre):
    return "SELECT * FROM clientes WHERE nombre = '" + nombre + "'"

print(consulta_insegura("Ana"))
print(consulta_insegura("x' OR '1'='1"))

# La segunda forma deja el dato aparte, con un parámetro ?
consulta_segura = "SELECT * FROM clientes WHERE nombre = ?"
print(consulta_segura)
# Mira cómo la segunda línea impresa devuelve todos los clientes.

Ejemplo: cuatro fallos y su arreglo

FalloCómo se veArreglo
Inyección SQLUna consulta que suma texto del usuarioConsultas con parámetros
Secreto en el códigopassword = "abc123" entre comillasLeerlo de una variable de entorno
Dependencia dudosaUn paquete con nombre raro que no conocesBuscarlo y mirar quién lo mantiene
Resumen débilGuardar contraseñas con un hash antiguoUsar una función pensada para contraseñas

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Mira la configuración y busca secretos

Estas órdenes solo miran, y nadie escribe ningún secreto. La primera enseña el valor de relleno de la configuración del agente: la clave real nunca está en el archivo ni la ve el estudiante. La segunda es un ejemplo con un texto falso. La tercera busca palabras de secreto en el programa de la cantina.

Mira el valor de relleno de la clave

Comando
docker exec agent grep apiKey /home/node/.config/opencode/opencode.json

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Busca secretos en un texto de ejemplo

Comando
printf 'host = "db"\npassword = "abc123"\nuser = "ana"\n' | grep -n -i -E "password|secret|token"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Busca esas palabras en el programa

Comando
docker exec -w /home/node/project agent grep -c -i -E "password|secret|token|apikey" shop.js

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.