Nivel 2 · 2C Claves filtradas · Lección 1 de 2
Claves: dónde viven y cómo se filtran
Una clave de API, un token o una contraseña de base de datos es una llave. Si cae en manos ajenas, esa persona puede actuar como tu programa: gastar tu dinero, leer tus datos o borrarlos. Un secreto es justamente un dato que nadie fuera del servidor debería poder ver.
Las claves se filtran por descuidos: se escriben en el código y se suben a un repositorio público, se pegan en un chat, aparecen en una captura de pantalla, en un registro de errores o hasta en la dirección de una web. Hay robots que revisan los sitios de código público todo el día buscándolas.
Dónde sí y dónde no
Mal lugar: escrita en el código, en el JavaScript de la página, en un chat del equipo, en un comentario "temporal" o en una captura. Buen lugar: en una variable de entorno o secreto del servidor, en un gestor de secretos, o en un archivo .env que esté en el .gitignore para que git nunca lo suba.
Para ir más a fondo
Dónde viven las claves
// MAL: la clave escrita en el código
const CLAVE = "sk_live_FALSA_123456";
// BIEN: la clave llega desde afuera cuando arranca el programa
const CLAVE = process.env.CLAVE_PAGOS;- En la versión mala, cualquiera que vea el código ve la clave, y queda guardada en el historial para siempre.
- En la buena, el código solo nombra la variable. El valor real se carga en el servidor o en un gestor de secretos, fuera del repositorio.
- Recordá agregar el archivo local de secretos (por ejemplo .env) al .gitignore.
Preguntas de repaso
Subís por error una clave a un repositorio público y a los 2 minutos la borrás. ¿Estás a salvo?
Respuesta: No: hay que asumir que la copiaron y anularla. Hay robots que buscan claves todo el día, y además el historial del repositorio conserva la versión vieja.
¿Cuál es un buen lugar para guardar una clave?
Respuesta: En una variable de entorno o en un gestor de secretos. Fuera del código y del repositorio, solo accesible para el servidor.
Un compañero te pide la clave por el chat del equipo. ¿Cuál es el riesgo?
Respuesta: El chat guarda el historial: cualquiera que lo vea (o si lo hackean) tiene la clave. Los chats se guardan, se reenvían y se hackean. Las claves se comparten con herramientas pensadas para eso.