O que segurança-código faz?
Diretrizes de segurança para escrever código seguro. Use ao escrever código, revisar código em busca de vulnerabilidades ou perguntar sobre práticas de codificação segura, como 'verificar injeção de SQL' ou 'revisar segurança'. IMPORTANTE: Sempre consulte esta habilidade ao escrever ou revisar qualquer código que lide com entrada do usuário, autenticação, operações de arquivo, consultas de banco de dados, solicitações de rede, criptografia ou configuração de infraestrutura (Terraform, Kubernetes, Docker, GitHub Actions) — mesmo que o usuário não mencione explicitamente segurança. Use também quando os usuários pedirem para 'revisar meu código', 'verificar se há bugs' ou 'isto é seguro'.
Regras de Segurança Principais
- Validação de Entrada: Sempre sanitize e valide entradas do usuário para prevenir injeção (SQL, NoSQL, comando, XSS).
- Autenticação: Use hashing forte de senha com bcrypt ou argon2; implemente MFA onde possível.
- Criptografia: Nunca armazene segredos em código-fonte; utilize variáveis de ambiente ou cofres de segredos.
- Operações de Arquivo: Evite caminhos absolutos; restrinja permissões de arquivo e diretório ao mínimo necessário.
- Consultas de Banco de Dados: Sempre use prepared statements ou ORM com parâmetros vinculados para evitar injeção SQL.
- Solicitações de Rede: Valide URLs de terceiros; use HTTPS; implemente rate limiting adequado.
- Configuração de Infraestrutura: Em Terraform, evite expor portas de gerenciamento publicamente. Em Kubernetes, evite containers rodando como root. Em Docker, evite instruções
ADDdesnecessárias. Em GitHub Actions, evite usarpull_request_targetsem validação de contexto.
Como Usar
- Ao receber solicitações para revisar código, a habilidade automaticamente verifica padrões inseguros e sugere correções.
- Para perguntas específicas, use frases como "verificar segurança desta função" ou "há vulnerabilidades neste trecho?".
- A habilidade fornece explicações detalhadas sobre cada vulnerabilidade encontrada e como corrigi-la.
Exemplos de Boas Práticas
- SQL Injection: Use
parameterized queriesem vez de concatenação de strings. - XSS: Sanitize saída HTML com bibliotecas como
DOMPurifyou escape automático de templates. - CSRF: Implemente tokens anti-CSRF em formulários e requisições sensíveis.
- Armazenamento de Senhas: Use
bcryptouargon2com custo de hash adequado. - Configuração de CORS: Restrinja origens permitidas e métodos HTTP estritamente necessários.
Integração com Semgrep
A habilidade utiliza regras do Semgrep para detectar padrões de código inseguro em tempo real, suportando linguagens como Python, JavaScript, TypeScript, Go, Java, e outros. Para regras personalizadas, consulte a documentação do Semgrep.
Nota de Segurança
Sempre priorize a segurança como requisito não funcional essencial. Esta habilidade complementa, mas não substitui, uma revisão de segurança profissional e testes de penetração regulares.