Skip to main content

security-secrets

Proteção de secrets - Nunca exponha credenciais em logs, terminal ou git

跳到安装

来源信息

仓库
criptogus/liquid-ai
最近来源活动
2026年1月25日 23:45
检测到的 SKILL.md 语言
葡萄牙语
星标
7
分支
2

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
security-secrets
description
Proteção de secrets - Nunca exponha credenciais em logs, terminal ou git
version
1.0.0
category
security
triggers
["secret","secrets","env","environment",".env","api key","credential","password","token","auth","segurança","security"]
tools
[]
author
liquid-ai
based_on
varlock-claude-skill
# Security Secrets - Proteção de Credenciais Esta skill garante que secrets e credenciais NUNCA apareçam em sessões do Claude, terminais, logs ou commits git. ## Regra Fundamental > **NUNCA exponha, exiba, logue ou commite secrets. JAMAIS.** ## O Que São Secrets? | Tipo | Exemplos | Risco | |------|----------|-------| | **API Keys** | `GOOGLE_AI_API_KEY`, `STRIPE_SECRET_KEY` | Acesso não autorizado | | **Database** | `DATABASE_URL`, connection strings | Data breach | | **Auth Tokens** | JWT secrets, OAuth tokens | Impersonation | | **Passwords** | Senhas de serviços, admin passwords | Comprometimento total | | **Private Keys** | SSH keys, SSL certificates | Acesso a sistemas | | **Webhooks** | URLs com tokens embutidos | Execução de ações | ## Regras de Proteção (NÃO NEGOCIÁVEIS) ### 1. NUNCA Exibir Valores ```bash # ❌ PROIBIDO echo $DATABASE_URL cat .env printenv | grep API # ✅ CORRETO echo "DATABASE_URL está configurado: $([ -n "$DATABASE_URL" ] && echo 'sim' || echo 'não')" ``` ### 2. NUNCA Logar Secrets ```typescript // ❌ PROIBIDO console.log('API Key:', process.env.API_KEY); console.log('Config:', JSON.stringify(config)); // ✅ CORRETO console.log('API Key configurada:', !!process.env.API_KEY); console.log('Config keys:', Object.keys(config)); ``` ### 3. NUNCA Commitar Secrets ```gitignore # .gitignore OBRIGATÓRIO .env .env.* *.pem *.key secrets/ credentials.json ``` ### 4. NUNCA Incluir em Prompts ```markdown ❌ PROIBIDO: "Minha API key é sk-abc123..." ✅ CORRETO: "Preciso configurar a API key do Stripe" ``` ## Arquivos Sensíveis - NUNCA LER/EXIBIR | Arquivo | Motivo | |---------|--------| | `.env` | Variáveis de ambiente | | `.env.local` | Overrides locais | | `.env.production` | Secrets de produção | | `credentials.json` | Google Cloud credentials | | `*.pem`, `*.key` | Chaves privadas | | `secrets.yaml` | Kubernetes secrets | | `docker-compose.override.yml` | Pode conter secrets | ## Detecção de Vazamentos ### Padrões Suspeitos ```regex # API Keys (sk|pk)[-_][a-zA-Z0-9]{20,} AKIA[0-9A-Z]{16} ghp_[a-zA-Z0-9]{36} # Connection Strings (postgres|mysql|mongodb):\/\/[^:]+:[^@]+@ # Tokens eyJ[a-zA-Z0-9-_]+\.eyJ[a-zA-Z0-9-_]+ # Generic Secrets (password|secret|token|key)\s*[:=]\s*['\"][^'\"]+['\"] ``` ### Se Detectar Vazamento 1. **PARE IMEDIATAMENTE** 2. **NÃO EXIBA** o valor encontrado 3. **ALERTE** o usuário: "Detectei um possível secret no arquivo X. Não vou exibi-lo." 4. **SUGIRA** rotação das credenciais ## Como Trabalhar com Secrets ### Verificar Existência (Sem Expor) ```typescript // ✅ Verificar se existe const hasApiKey = !!process.env.API_KEY; const envVars = ['API_KEY', 'DB_URL', 'JWT_SECRET']; const missing = envVars.filter(v => !process.env[v]); if (missing.length > 0) { console.log('Variáveis faltando:', missing.join(', ')); } ``` ### Mascarar em Logs ```typescript // ✅ Mascarar valores function maskSecret(value: string): string { if (!value || value.length < 8) return '***'; return value.slice(0, 4) + '...' + value.slice(-4); } console.log('API Key:', maskSecret(process.env.API_KEY)); // Output: "API Key: sk-a...xyz9" ``` ### Configurar Ambiente ```bash # ✅ Copiar template (sem valores) cp .env.example .env echo "Edite .env e adicione suas credenciais" # ✅ Verificar arquivo existe [ -f .env ] && echo ".env configurado" || echo "Crie o arquivo .env" ``` ## Checklist de Segurança ### Antes de Commitar - [ ] `.env` está no `.gitignore`? - [ ] Não há secrets hardcoded no código? - [ ] Connection strings usam variáveis de ambiente? - [ ] Logs não expõem credenciais? ### Antes de Compartilhar Código - [ ] Removeu arquivos sensíveis? - [ ] Substituiu secrets por placeholders? - [ ] Verificou histórico do git? ### Em Code Review - [ ] Nenhuma API key no diff? - [ ] Nenhuma senha em strings? - [ ] Nenhum token em URLs? ## Respostas Padrão ### Quando Pedirem para Exibir Secret > "Não posso exibir o valor de secrets por segurança. Posso verificar se a variável está configurada ou ajudar a configurá-la de forma segura." ### Quando Encontrar Secret em Código > "Detectei uma possível credencial hardcoded em [arquivo:linha]. Recomendo: > 1. Mover para variável de ambiente > 2. Adicionar arquivo ao .gitignore > 3. Rotacionar a credencial se já foi commitada" ### Quando Secret Vazar > "⚠️ ALERTA: Este secret pode ter sido exposto. Ações imediatas: > 1. Rotacione a credencial AGORA > 2. Verifique logs de acesso > 3. Revise histórico do git > 4. Considere usar git-filter-repo para limpar histórico" ## Ferramentas Recomendadas | Ferramenta | Uso | |------------|-----| | `git-secrets` | Previne commits com secrets | | `truffleHog` | Escaneia histórico git | | `detect-secrets` | Pre-commit hook | | `dotenv-vault` | Criptografia de .env | --- **Esta skill ativa AUTOMATICAMENTE quando:** - Código menciona variáveis de ambiente - Arquivos .env são referenciados - Discussão sobre API keys ou credenciais - Configuração de serviços externos
在 GitHub 查看