Escritos

Filtración de claves en Claude Code: La trampa de .claude/settings.local.json y cómo protegerte

Investigadores de Apiiro encontraron más de 104.000 archivos .claude/settings.local.json públicos en GitHub, y 1.122 contenían contraseñas de bases de datos y claves API activas.

Furkan Özay13 de noviembre de 2026 · 2 min de lectura
czCZAY.DEV // EDITORIALES
GÜVENLIK

#Güvenlik · 2 MIN DE LECTURA

FURKAN ÖZAYVOL. 2026 // #478D

Hacer clic en "Yes, and don't ask again" en agentes de programación con IA agiliza el trabajo, pero puede terminar guardando tus contraseñas y claves API en un archivo que acaba en GitHub.

Según una investigación de Apiiro, se detectaron más de 104.000 copias de .claude/settings.local.json en repositorios públicos de GitHub. De ellas, 1.122 archivos contenían secretos activos en texto plano, incluyendo credenciales de bases de datos, claves administrativas en la nube y tokens de API.

¿Cómo ocurre la filtración?

  1. Al aprobar un comando en Claude Code con "Yes, and don't ask again", el comando completo se guarda en .claude/settings.local.json.
  2. Si el comando incluye tokens o contraseñas, quedan guardados tal cual en el JSON.
  3. Claude Code solo añade el archivo a tu lista global local de git, no al .gitignore del proyecto. Al clonar en otra máquina o usar COPY . . en Docker, el archivo puede subirse por accidente.

Auditoría rápida y protección

Bash
git ls-files | grep -E '\.claude/'
git log --all --full-history -- "**/.claude/settings.local.json" "**/.claude/settings.json"

Añade estas líneas a tu .gitignore y .dockerignore:

gitignore
.claude/settings.local.json
.claude/*.local.*
.cursor/mcp.json

Si algún secreto llegó al historial de git, no basta con borrar el archivo: revoca y rota todas las claves y contraseñas afectadas de inmediato.

Sigue leyendo