Capítulo 8 — Programação II
Mapa da aula
Aula 08 publicada. Mapa, exemplo, EX022.
flowchart TD
N0["8.1 Verificações de acesso"]
N1["8.2 Análise pseudonimizada"]
N2["8.3 Testes"]
N3["8.4 Revisão de código"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX022"]
Desenho lógico
flowchart LR
N0["8.1 Verificações de acesso"]
N1["8.2 Análise pseudonimizada"]
N2["8.3 Testes"]
N3["8.4 Revisão de código"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX022"]
[8.1 Verificações de acesso]
|
v
[8.2 Análise pseudonimizada]
|
v
[8.3 Testes]
|
v
[8.4 Revisão de código]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX022]
Objetivos de aprendizagem
Você vai (1) implementar verificações de acesso; (2) pseudonimizar dados para análise; (3) testar o comportamento de privacidade.
8.1 Verificações de acesso
Elena escreve um pequeno aplicativo para consultar informações dos alunos. Antes de mostrar qualquer registro, ele verifica a função do usuário e a finalidade. Um professor pode ver os registros de aprendizagem dos alunos de suas turmas; a coordenadora de necessidades especiais pode ver os planos de apoio. Os pedidos sem uma função válida são recusados e registrados. Ela aprende que escrever as verificações no código garante que as regras sejam aplicadas de forma consistente, em vez de depender de os funcionários lembrarem quais dados devem consultar. Cada pedido confere a lista da turma.
8.2 Análise pseudonimizada
A rede quer analisar o progresso da leitura entre as escolas. Elena escreve um código que substitui os identificadores dos alunos por pseudônimos usando um hash com chave antes que os dados cheguem ao analista. A chave fica com o responsável pela proteção de dados. Ela explica que o analista pode estudar o progresso sem saber quem é cada criança, mas que os dados continuam sendo pessoais pelo GDPR, porque a chave poderia reidentificar os alunos. A pseudonimização reduz o risco, mas não elimina os deveres legais. A chave fica guardada separadamente dos dados, como pede o art. 13, § 4º, da LGPD.
8.3 Testes
Elena escreve testes que verificam o comportamento de privacidade: um professor não consegue ver um aluno de outra turma, a exportação para análise não contém nomes e os logs registram cada acesso. Um teste falha porque um professor que deixou uma turma ainda tem acesso a ela. Ela acrescenta uma regra para remover o acesso quando as atribuições de turma mudam. Testar automaticamente as propriedades de privacidade encontra problemas que a revisão manual deixaria passar e continua funcionando à medida que o código muda. Um teste reprovado impede a implantação da mudança. Os testes rodam a cada mudança, apenas com turmas sintéticas.
8.4 Revisão de código
O código de Elena é revisado por um colega, que pergunta por que a exportação inclui a data de nascimento. Elena percebe que ela não é necessária para o progresso da leitura e a remove. O Dr. Asante observa que os revisores devem perguntar que dados são necessários, além de verificar se o código funciona. A revisão de código vira uma verificação de minimização, além de uma verificação de qualidade, e pequenas remoções como essa se somam ao longo de muitos programas. Em uma revisão, ela tira um campo de data de nascimento de uma exportação. Os revisores perguntam por que cada campo existe.
Exemplo resolvido
Elena implementa verificações de acesso baseadas na função e na turma, pseudonimiza os dados de leitura com um hash com chave, encontra por meio de testes acessos remanescentes a turmas antigas e remove a data de nascimento depois da revisão.
Caso sintético. O código e os alunos são sintéticos.
Erros e limites
Os pseudônimos com chave podem ser revertidos por quem tiver a chave; proteja-a.
Exercícios
- EX022 — Acesso por turma. Como o aplicativo de Elena decide se um professor vê um registro? Rubrica: 3 = verificações de função e finalidade, mais a participação na turma;; 2 = menciona a função;; 1 = mostra tudo;; 0 = nenhuma.
- EX023 — Pseudonimizado, ainda pessoal. Por que o conjunto de leitura pseudonimizado continua sendo de dados pessoais? Rubrica: 3 = a chave pode reidentificar os alunos;; 2 = menciona a chave;; 1 = anônimo;; 0 = nenhuma.
- EX024 — Acesso remanescente. Que teste reprovado Elena corrigiu? Rubrica: 3 = professores que mantinham o acesso depois de deixar uma turma;; 2 = menciona acesso;; 1 = vago;; 0 = nenhuma.
Síntese
O capítulo 8 implementa controles. O capítulo 9 estuda dados e bancos de dados.
Continue estudando — aula 08 (capítulo 08 de 40)
← Capítulo 07 · Índice das aulas · Capítulo 09 →
Continue para a próxima aula já escrita.