Categoría/Ciberseguridad/Artículo

API keys, tokens y secretos: cómo protegerlos en una aplicación

Cómo separar claves públicas, tokens y secretos en aplicaciones modernas para reducir filtraciones, limitar privilegios y facilitar la rotación segura.

Español·Contenido original del autor
Publicado: 23 de agosto de 2026Actualizado: 28 de agosto de 20268 min de lectura
API keys, tokens y secretos: cómo protegerlos en una aplicación
Una lectura rápida antes de empezar

Cómo separar claves públicas, tokens y secretos en aplicaciones modernas para reducir filtraciones, limitar privilegios y facilitar la rotación segura.

No todas las credenciales son iguales. Una API key pública puede existir en un navegador; un secreto de proveedor, una clave privada o un token administrativo no debería acabar allí. El problema aparece cuando la aplicación deja de distinguir entre lo que puede conocer el cliente y lo que solo debe conocer el servidor.

El navegador es público

Todo lo que llega al bundle puede ser inspeccionado. Minificar código no lo convierte en secreto y ofuscar una cadena tampoco. Si una credencial permite una acción privilegiada, hay que mover esa operación al servidor.

Variables de entorno no significan secreto automáticamente

Una variable solo es privada si nunca termina expuesta al cliente, al registro de builds, a un repositorio o a una captura compartida. Conviene separar variables públicas y privadas y revisar qué framework tiene permiso para incrustarlas en el bundle.

Logs, errores y repositorios

Los secretos se filtran a menudo de formas poco espectaculares: un error que imprime cabeceras, un log con una URL firmada, un archivo .env subido por accidente, una captura de pantalla o una copia en una rama antigua de Git.

Eliminar un secreto del último commit no basta si ya existió en el historial. Cuando hay exposición, la respuesta adecuada es rotar la credencial, revisar el alcance y analizar dónde pudo copiarse.

Rotación

Rotar no significa simplemente generar otra cadena. Hay que identificar consumidores, actualizar producción, invalidar la antigua y comprobar que no queda un proceso utilizando el valor anterior.

Mínimo privilegio

Un token que solo debe leer un recurso no debería poder borrarlo. Las credenciales de backend tampoco deberían reutilizarse para tareas del navegador. Separar permisos reduce el impacto de una filtración.

Un diseño sano

El navegador solicita una acción. El servidor valida la sesión, comprueba permisos, utiliza la credencial privada y devuelve solo el resultado necesario. Esta arquitectura permite cambiar proveedores y rotar secretos sin exponerlos al cliente.

Revisión práctica FMCP

Revisaríamos el repositorio, variables de despliegue, bundles del cliente, logs, proveedores externos y permisos efectivos. Después comprobaríamos que las rutas administrativas no dependan de que el frontend oculte un botón.

Conclusión

La mejor defensa no es esconder cadenas. Es diseñar el sistema para que una credencial filtrada tenga el menor valor posible y pueda rotarse rápidamente. Público, interno y secreto deben ser categorías diferentes desde el principio.

Dónde suelen aparecer secretos sin que nadie lo note

Una credencial puede acabar en el historial de Git, en un log, en una captura, en un fichero de configuración compartido o en el navegador. Por eso la gestión de secretos debe tratar el ciclo completo y no solo el archivo .env.

Cliente y servidor

Todo lo que llega al navegador debe considerarse potencialmente visible para el usuario. Las claves administrativas, secretos de proveedores y credenciales con capacidad destructiva deben permanecer en el servidor.

Historial de Git

Borrar una clave del archivo actual no elimina necesariamente la versión antigua. Si una credencial apareció en Git, la respuesta correcta suele incluir rotación y una revisión del historial. La pregunta es cuánto tiempo estuvo disponible y dónde pudo haberse copiado.

Rotar no es solo cambiar una cadena

Cuando un secreto queda expuesto, identifica primero sus permisos y usos. Rótalo, actualiza los consumidores legítimos y busca actividad posterior. Una rotación cierra una puerta; la investigación determina cuánto tiempo estuvo abierta.

Secretos por entorno

Desarrollo, preview y producción no deberían compartir indiscriminadamente las mismas credenciales. Separar entornos reduce el impacto de una filtración y hace más claro qué sistema está realizando cada acción.

Logs y mensajes de error

Los logs ayudan a depurar, pero pueden convertirse en un almacén accidental de secretos. Evita registrar cabeceras de autorización, tokens completos, cookies y respuestas que contengan credenciales. Cuando sea necesario diagnosticar, registra identificadores parciales o metadatos seguros.

CI/CD y repositorios

El pipeline también necesita una política clara. Las variables del entorno de build deben tener el alcance mínimo y nunca deberían imprimirse como parte de un diagnóstico. Revisa asimismo artefactos, capturas y logs del pipeline.

Proveedores y terceros

Una credencial tiene el mismo riesgo aunque el proveedor sea externo. Conoce qué permisos tiene cada integración, si admite rotación y qué ocurre cuando deja de utilizarse.

Una checklist realista

  • inventario de secretos;
  • separación por entorno;
  • permisos mínimos;
  • rotación documentada;
  • revisión de Git e históricos;
  • logs sin credenciales;
  • acceso restringido al servidor;
  • procedimiento de revocación.

Cierre FMCP

La seguridad de secretos funciona mejor cuando la aplicación hace difícil exponerlos y fácil rotarlos. La memoria humana puede fallar; el diseño del sistema debería compensarlo.

Secretos, permisos y ciclo de vida

La protección mejora cuando cada credencial tiene un propietario, una finalidad y un momento de revisión. Pregunta quién puede crearla, quién puede utilizarla, cómo se rota y cómo se revoca.

Señales de exposición

Buscar cadenas conocidas en repositorios ayuda, pero no cubre capturas, logs ni herramientas externas. La respuesta debe pensar en el recorrido completo del secreto.

Después de una rotación

Verifica que todos los consumidores utilizan la credencial nueva y que la antigua ya no funciona. Una rotación incompleta puede dejar dos secretos activos y complicar el diagnóstico.

Cierre ampliado

El mejor secreto es el que tiene permisos mínimos, vida limitada y un procedimiento claro de sustitución. La seguridad aumenta cuando la operación cotidiana no depende de recordar excepciones.

API keys, tokens y secretos: tres conceptos que no deben confundirse

En un sistema real conviven credenciales de distinta sensibilidad. Una clave pública de cliente, un token temporal y una credencial administrativa no merecen el mismo tratamiento. El primer paso para protegerlos es clasificarlos correctamente.

Lo que puede llegar al navegador

Algunas credenciales están diseñadas para operar en el cliente y dependen de restricciones adicionales. Eso no convierte automáticamente en seguro exponer cualquier clave. Hay que comprobar qué permisos tiene y qué operaciones puede ejecutar.

Lo que debe permanecer en servidor

Una credencial con capacidad administrativa, acceso amplio a datos o posibilidad de modificar infraestructura debe considerarse secreto. NUNCA debe aparecer en código enviado al navegador, repositorios públicos o mensajes de diagnóstico.

Rotación y vida útil

Un secreto que permanece válido durante años aumenta el tiempo de exposición si se filtra. La estrategia más robusta es utilizar credenciales con permisos mínimos y rotación automatizada cuando el servicio lo permita. El NCSC recomienda evitar credenciales de larga duración cuando existe una alternativa y automatizar la rotación o renovación.

Un repositorio no olvida fácilmente

Borrar una clave de la rama actual no implica que haya desaparecido del historial, de forks, artefactos o logs. Cuando una credencial ha sido expuesta, la respuesta correcta suele ser revocarla o rotarla, no simplemente eliminar la línea de código.

Tokens y autorización

Un token debe estar ligado a un propósito, audiencia y duración adecuados. En sistemas con JWT, el servicio debería validar al menos integridad y claims relevantes como emisor, audiencia y expiración.

Auditoría práctica

El equipo debería poder contestar: dónde se generan los secretos, dónde se almacenan, quién los puede usar, cuánto duran, cómo se rotan y qué ocurre cuando se sospecha una filtración. Si nadie puede responder alguna de esas preguntas, existe deuda de seguridad.

La regla más simple sigue siendo la más útil: una credencial debe tener el mínimo poder posible, durante el mínimo tiempo posible y solo en el lugar donde realmente se necesita.

Qué puede ocurrir cuando una API key termina expuesta

El impacto depende de los permisos. Una clave sin privilegios puede provocar consumo no autorizado; una credencial administrativa puede permitir consultar datos o ejecutar acciones críticas. Por eso la respuesta debe empezar por clasificar la credencial y no por borrar el archivo donde apareció.

Respuesta en cuatro pasos

Revocar o rotar, investigar el alcance, revisar logs de uso y corregir el origen de la exposición. Después conviene buscar la misma credencial en repositorios, variables de entorno, tickets y artefactos. El incidente termina cuando se elimina el camino que permitió la fuga, no cuando desaparece la cadena visible.

Diseñar para el día después

Un sistema maduro asume que algún secreto terminará filtrándose. La combinación de mínimo privilegio, credenciales temporales, rotación y monitorización reduce drásticamente el impacto de ese escenario.

La rotación debe formar parte del diseño, no del plan de emergencia

Una credencial segura hoy puede quedar comprometida mañana. Por eso conviene automatizar expiración, rotación y alertas cuando el proveedor lo permita. La seguridad deja de depender de recordar manualmente qué secreto toca cambiar.

La estrategia de secretos debe sobrevivir a un cambio de proveedor

No diseñes la gestión de credenciales alrededor de una única plataforma. El principio debe ser portable: separación de entornos, mínimo privilegio, rotación, auditoría y revocación. Así una migración de proveedor no obliga a reconstruir todo el modelo de seguridad.

Una buena señal es que el equipo pueda rotar una credencial sin modificar código de negocio y sin detener toda la aplicación.

¿Quieres aplicar esto a tu negocio?

Hablemos de tu caso y vemos qué puede automatizarse, mejorarse o construirse.

Hablar con FMCP