Segurança e RGPD
O que está implementado, descrito com detalhe suficiente para ser verificado — e o que ainda não está.
Separação entre identidade e clínica
Um paciente tem um número interno. As consultas, as notas clínicas, os exercícios, os testes e os lançamentos de faturação referem-se a esse número. O nome, o contacto, a data de nascimento, a morada e o NIF vivem numa tabela separada, e são juntados apenas nas páginas onde alguém precisa de os ler.
O que o RGPD pede a um processo clínico, e porque é que esta separação ajuda:RGPD e o processo clínico do psicólogo.
Contas e sessões
As palavras-passe são guardadas com scrypt — memory-hard, com um sal por conta. Nunca em claro, e nunca com um hash rápido.
As sessões são linhas numa tabela, não tokens auto-suficientes. Terminar sessão termina mesmo a sessão, e o que fica guardado é o SHA-256 do cookie e não o cookie: uma cópia da base de dados não entrega sessões utilizáveis.
O cookie é HttpOnly, Secure e SameSite=Lax.
Quem vê o quê
Cada pedido resolve quem está a perguntar a partir do cookie de sessão, e nunca a partir de um identificador no endereço ou no corpo do pedido. Uma conta de psicólogo vê a sua prática; uma conta de paciente vê a ficha a que está ligada. Não há caminho entre as duas.
A área do paciente tem quatro leituras — consultas, exercícios, conteúdos atribuídos e documentos explicitamente partilhados. Notas clínicas, notas administrativas, faturação e resultados de testes não têm rota nenhuma nessa área.
Consentimentos
Um consentimento retirado mantém a linha e ganha uma data de retirada. Apagá-la deixaria sem forma de demonstrar que o consentimento existiu e quando terminou, que é precisamente o que o RGPD pede a um responsável pelo tratamento.
Transporte e cabeçalhos
HTTPS com certificado emitido automaticamente, HSTS,X-Content-Type-Options: nosniff, Referrer-Policyrestritiva e uma Permissions-Policy que desliga câmara, microfone e geolocalização. As páginas com sessão iniciada são noindex.
Nada em toda a interface é escrito com innerHTML: o texto que um psicólogo ou um paciente escreve é inserido como texto, e por isso não pode tornar-se um elemento.
O que ainda não está feito
- Autenticação em dois passos
- Registo de auditoria de acessos a processos clínicos
- Cifra ao nível da coluna para as notas clínicas
- Exportação e apagamento de dados do titular à ordem de um botão
- Backups verificados por restauro
Estão listados aqui porque a alternativa — não os listar — dá a entender que estão feitos.