Política de Segurança da Informação

Última atualização: 27 de julho de 2026.

Esta política descreve, com base na análise técnica do código-fonte, as medidas de segurança da informação efetivamente implementadas na Plataforma Ensina Plus.

1. Objetivo

Esta Política descreve, com base na análise técnica do código-fonte da Plataforma, as medidas de segurança da informação adotadas pelo Ensina Plus para proteger dados pessoais e conteúdo dos usuários, em atenção ao art. 46 da LGPD.

2. Autenticação e controle de acesso

  • Autenticação via Supabase Auth, com login por e-mail/senha ou OAuth com Google (fluxo PKCE);
  • Senhas nunca são armazenadas ou processadas em texto claro pela aplicação — a gestão de credenciais é delegada ao provedor de autenticação;
  • Row-Level Security (RLS) no banco de dados PostgreSQL, restringindo cada usuário ao acesso exclusivo dos próprios registros diretamente no nível do banco;
  • Verificações de autorização redundantes (“defesa em profundidade”) no código das rotas de backend, além da RLS — por exemplo, a titularidade de uma atividade é sempre confirmada pela cadeia atividade → turma → usuário antes de qualquer leitura, edição ou exclusão;
  • Uso de credenciais de acesso privilegiado (“service role”, que ignora RLS) restrito a contextos sem sessão de usuário, como o processamento de webhooks do Stripe e a verificação de e-mail já cadastrado.

3. Criptografia

Toda comunicação entre o navegador e os servidores da Plataforma é criptografada via HTTPS/TLS, com a política HSTS configurada para forçar conexões seguras por 2 anos, incluindo subdomínios. Os dados armazenados em repouso (banco de dados e arquivos) são protegidos pela criptografia em repouso oferecida pela infraestrutura do Supabase. Não se trata de criptografia de ponta a ponta no sentido técnico estrito (em que nem o próprio provedor do serviço teria acesso ao conteúdo em texto claro) — a Plataforma e seus operadores de infraestrutura processam os dados em texto legível na medida necessária à prestação do serviço (por exemplo, para gerar o conteúdo solicitado via IA).

4. Cabeçalhos de segurança HTTP

A Plataforma aplica os seguintes cabeçalhos de segurança em todas as respostas:

  • X-Frame-Options: DENY — impede que a Plataforma seja carregada dentro de um iframe de terceiros (proteção contra clickjacking);
  • Content-Security-Policy — política completa, gerada a cada requisição com um identificador único (nonce) que autoriza a execução apenas dos scripts legítimos da própria Plataforma e de parceiros explicitamente confiáveis (Stripe), bloqueando a execução de scripts injetados por terceiros — a principal linha de defesa técnica contra ataques de Cross-Site Scripting (XSS); também restringe de onde a Plataforma pode carregar estilos, fontes, imagens e conexões de rede, e mantém a diretiva frame-ancestors 'none' contra incorporação em iframes de terceiros;
  • X-Content-Type-Options: nosniff — impede que o navegador reinterprete o tipo de um arquivo de forma perigosa;
  • Referrer-Policy: strict-origin-when-cross-origin — limita o vazamento de URLs internas para sites de terceiros;
  • Strict-Transport-Security (HSTS) — força conexões HTTPS por 2 anos, incluindo subdomínios;
  • Permissions-Policy: camera=(), microphone=(), geolocation=() — bloqueia integralmente, a nível de navegador, o acesso a câmera, microfone e geolocalização, recursos que a Plataforma não utiliza.

5. Proteção contra abuso e arquivos maliciosos

  • Limites de tamanho de upload (5MB para arquivos de referência, 2MB para avatar) e de tipo de arquivo (MIME type) aceitos;
  • Limite de 30 páginas para arquivos PDF enviados como referência;
  • O parser de documentos .docx (usado para extrair o estilo de modelos enviados) inclui proteção explícita contra ataques de “zip bomb” (descompressão excessiva), limitando o tamanho de entrada e o total descomprimido;
  • Sanitização de parâmetros de redirecionamento (next) no fluxo de login, para prevenir open redirect;
  • Limites de cota (rate limiting funcional) por plano de assinatura, reservados de forma atômica via funções de banco de dados, para evitar condições de corrida e uso indevido em geração de conteúdo via IA.

6. Isolamento e minimização de segredos

Chaves de API sensíveis (Supabase, Gemini, Stripe) são mantidas exclusivamente em variáveis de ambiente do lado do servidor, nunca expostas ao navegador. A chave publicável do Stripe e o carregamento do SDK correspondente são isolados em módulo próprio, especificamente para evitar o vazamento acidental de segredos ao pacote enviado ao navegador. O pagamento por cartão é processado diretamente pelo Stripe (via Stripe Elements) — o Ensina Plus nunca recebe nem armazena números de cartão de crédito em seus próprios servidores.

7. Gestão de incidentes de segurança

Em caso de incidente de segurança que possa acarretar risco ou dano relevante aos titulares de dados, o Ensina Plus comunicará à Autoridade Nacional de Proteção de Dados (ANPD) e aos titulares afetados, nos termos do art. 48 da LGPD, informando a natureza dos dados afetados, as medidas técnicas de segurança utilizadas, os riscos relacionados e as medidas adotadas para reverter ou mitigar os efeitos do incidente. Notificações de possíveis incidentes de segurança devem ser enviadas ao Encarregado (faleconosco@ensinaplus.com) ou ao suporte ( faleconosco@ensinaplus.com); confirmamos o recebimento em até 5 (cinco) dias úteis e damos uma resposta conclusiva (incluindo, se aplicável, as comunicações à ANPD e aos titulares afetados exigidas pelo art. 48 da LGPD) em até 15 (quinze) dias úteis a contar do recebimento.

8. Contato

Relatos de vulnerabilidades de segurança podem ser enviados para faleconosco@ensinaplus.com; dúvidas sobre proteção de dados podem ser dirigidas ao Encarregado em faleconosco@ensinaplus.com.

Veja também: Política de Privacidade · Política de Retenção e Exclusão de Dados.