IA: detecção de segredos
O curso trata de como pegar um segredo escrito no código antes que ele chegue a um commit no git. Mostra o que o .gitignore deste app já protege e por que uma regra por nome de arquivo não pega segredos digitados em arquivos comuns. Explica os dois sinais que um detector confere juntos, onde os segredos devem ficar e por que falsos positivos são a parte mais difícil. Também aborda pedir a uma IA que revise um diff, o que fazer depois de um commit com segredo e a montagem de um pequeno detector em Ruby com regex.
O que você vai aprender
- ✓Os dois sinais de um segredo escrito no código: nome de som sensível e valor em string literal
- ✓Manter segredos fora dos arquivos rastreados com ENV e credenciais criptografadas do Rails
- ✓Separar segredos reais de falsos positivos, como parâmetros password_confirmation e fixtures de teste
- ✓Fazer a uma IA uma pergunta estreita sobre um diff e avaliar a resposta
- ✓Trocar a credencial vazada primeiro e só depois limpar o histórico do git
- ✓Escrever um pequeno método Ruby que procura segredos em linhas de código
Um segredo que chega ao git já está comprometido
O momento que importa não é quando alguém encontra uma chave de API escrita direto num repositório. É o git commit, o instante em que o valor literal de um segredo é gravado num objeto de commit. Tudo depois disso é só um jeito diferente de descobrir um estrago já feito: alguém do time clonando o…
Ler a aula completa grátis →Currículo
7 aulasUm segredo que chega ao git já está comprometido
Por que o git commit é o momento de barrar um segredo e o que o .gitignore não pega.
Como um segredo hardcoded parece para um detector
Um detector só aponta uma linha quando um nome sensível recebe um literal entre aspas longo o bastante.
Onde o segredo deveria morar em vez disso
A configuração de SMTP com ENV e o padrão comentado de credenciais do Rails mantêm segredos fora dos arquivos rastreados.
Falsos positivos: a parte mais difícil da detecção
Como a checagem do formato do valor evita apontar linhas com password_confirmation e como tratar fixtures de teste.
Pedindo a uma IA para revisar um diff em busca de segredos
Entregue o diff e uma pergunta estreita à IA, e confie só em respostas que citam uma linha.
Depois de commitado, apagar não é suficiente
Um repositório descartável mostra que o histórico guarda segredos apagados, então troque a credencial antes de limpar.
Juntando tudo: um pequeno detector de segredos
Um desafio para escrever scan_for_secrets em Ruby, aplicando a regra dos dois sinais e pulando padrões seguros.