Dos formas de ocultar que no son lo mismo
Cifrar es cerrar con llave: quien la tiene reabre y lee el original. Sirve para datos que necesitas volver a usar. Hashear es triturar: se convierte en una huella irreversible; no se «deshashea». Sirve para contraseñas, porque solo necesitas comprobar, no recuperar. Confundirlas es un error de seguridad clásico de la IA.
[Cifrado vs hashing]
Esta actividad interactiva ('Explicacion visual') requiere el motor completo de Lumbre. El contenido estatico se muestra arriba; para la experiencia interactiva, visita la version online de este objeto.
Los «secretos»: lo que nunca va en el código
| Secreto | Ejemplo | Dónde va |
|---|---|---|
| Clave de API | API_KEY del clima o de pagos | variable de entorno en el servidor |
| Credencial de base de datos | DB_PASSWORD | variable de entorno |
| Contraseña de usuario | la que escribe al registrarse | solo como hash en la base de datos |
| Token de firma | SECRET_TOKEN de la sesión | variable de entorno |
Cómo detectar la IA que expone un secreto
MAL (clave pegada en el codigo, va al repositorio):\n const API_KEY = "abc123-CLAVE-REAL";\n fetch(API+"/pagos?key=" + API_KEY);\n\nBIEN (se lee del entorno del servidor, nunca se imprime):\n const API_KEY = process.env.API_KEY; // llega del entorno\n // y la llamada se hace desde el backend, no desde el navegador\n\nREGLA: ningun secreto aparece literal en el codigo ni en el frontend; solo referencias a variables de entorno.Prueba
¿Por qué las contraseñas se guardan con hashing y no cifradas?
Guardar una API key directamente en el código fuente es aceptable mientras el proyecto sea privado.
Detecta el secreto expuesto
Revisas lo que entregó una IA. Señala el punto que filtra un secreto:
- La contraseña del usuario se guarda como hash con una librería madura.
- La clave de pagos aparece escrita literalmente en un archivo JavaScript del frontend.
- La configuración sensible se lee de variables de entorno del servidor.
- El repositorio incluye un .gitignore que excluye el archivo .env.
Identifica la linea con error.
Haz una lista de los secretos de tu proyecto (claves, credenciales) y de dónde debe vivir cada uno (variable de entorno). Pide a la IA que no deje ninguno literal en el código.