Responda de memória:
- Cite as duas razões pelas quais um profissional de segurança programa.
- Ao ler qualquer código, qual é a pergunta-lente que você faz?
- No código, como você reconhece um possível XSS em JavaScript?
- Qual a diferença, no código, entre uma query SQL vulnerável e uma segura?
- Por que SHA-256 é ruim para senha e o que se usa no lugar?
- Onde deve ficar a decisão "esse usuário é admin?" — no client ou no servidor? Por quê?
- Por que remover um segredo do arquivo atual não resolve se ele já foi commitado no Git?
- Onde um segredo (chave de API) deve ficar, e onde nunca deve ficar?
- Automatizar os próprios testes e ler/revisar código para achar/evitar falhas (A.0).
- "O que aqui vem do usuário? É validado? É usado como dado ou como comando/HTML?" (A.0).
- Uso de
dangerouslySetInnerHTML/innerHTML/document.writecom dado de usuário, oueval()de input (A.3). - Vulnerável: concatena o input na string da query (vira comando). Segura: parametriza (input entra como dado) (A.4).
- SHA-256 é rápido → GPU testa bilhões/s. Use bcrypt/argon2 (lentos, ajustáveis, com salt) (A.7/Ex. 28).
- No servidor — o client é visível e editável; qualquer decisão de segurança feita nele é burlável (A.3/Módulo 0, 0.10).
- Porque o Git guarda o histórico: o segredo continua acessível num commit antigo. É preciso rotacionar a chave e limpar o histórico (git filter-repo/BFG) (A.8/Ex. 32).
- Deve: em variável de ambiente / Secret da plataforma (
.envno dev, com.envno.gitignore). Nunca: escrito no código ou no front-end (A.9).</details>
Checklist prático:
[ ] Rodei um loop de curl em Bash sobre vários paths
[ ] Fiz um request em Python e li o JSON
[ ] Medi a velocidade do SHA-256 e entendi por que é ruim p/ senha
[ ] Li a diferença entre query concatenada e parametrizada
[ ] Procurei segredos/dangerouslySetInnerHTML num bundle JS
[ ] Usei a IA para revisar um trecho e entendi a resposta
[ ] Verifiquei .gitignore e procurei segredos no histórico git (gitleaks)
[ ] Criei um .env ignorado pelo git e rodei npm audit
Conclusão: 6/8 do quiz + checklist completo.