Partilhar: WhatsApp
aulify
UC UC02836 · T. Desenv. Software, T. Inform. Gestão

Ficha 02 · Autenticação, secrets, dependências

Hashing, MFA, .env, vulnerabilidades em libs
Versão · Aluno
Tempo · 45 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Data
Objectivos da ficha

Parte I · Autenticação

Exercício 1 · Hashing (15 pts)

Para cada algoritmo, indica se é adequado para senhas em 2026 e porquê:

a) MD5 ___

b) SHA-256 ___

c) bcrypt ___

d) Argon2 ___

e) SHA-1 com salt ___

Exercício 2 · Implementar (15 pts)

Escreve as funções Python para:

a) Hashear senha com bcrypt no registo.

b) Verificar senha no login.

Exercício 3 · Sessão segura (15 pts)

Configura cookies de sessão Flask com flags adequadas e explica cada uma:

Parte II · MFA

Exercício 4 · TOTP (15 pts)

Escreve código Python que:

a) Gera novo secret para utilizador.

b) Devolve URL/QR para Google Authenticator.

c) Verifica código introduzido.

Parte III · Secrets

Exercício 5 · .env (10 pts)

A Joana comitou por engano o ficheiro .env com DATABASE_PASSWORD=Secreta123! para o repositório público.

a) Que acções imediatas tomar? (5 pts)

b) Como prevenir no futuro? (5 pts)

Exercício 6 · Variáveis de ambiente (10 pts)

Escreve código que lê configuração de variáveis de ambiente com defaults seguros:

Parte IV · Dependências

Exercício 7 · Auditar (20 pts)

A escola tem várias apps Python e quer estabelecer rotina de auditoria de dependências.

a) Que ferramentas usar? (5 pts)

b) Com que frequência rever? (5 pts)

c) Como integrar no fluxo de CI/CD? (5 pts)

d) Que fazer ao descobrir CVE crítico numa dependência? (5 pts)