Pular para o conteudo principal

Como Pensar Segurança em SPA, SSR e APIs

Como o desenho muda entre cliente, servidor e API sem tratar autenticação, trusted boundary e exposição de dado como a mesma conversa.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

Trilha

Trilha para entrevistas de senior frontend

Etapa 13 / 15

O problema

Tem discussão de segurança web que trata tudo como se fosse o mesmo sistema:

  • SPA
  • SSR
  • API

Como se mudar o lugar onde o código roda não mudasse também:

  • superficie de ataque
  • exposição de credencial
  • trusted boundary
  • risco de vazar dado

Muda bastante.

Modelo mental

Pense assim:

  • SPA coloca mais lógica e mais estado de interação no browser
  • SSR move parte da montagem e do acesso a dado para o servidor
  • API define as fronteiras de acesso ao recurso

Nenhum desses formatos elimina a necessidade dos outros.

Mas cada um muda a pergunta de segurança principal.

Quebrando o problema

Em SPA, o browser e uma superficie mais exposta

No cliente, qualquer coisa acessivel a JavaScript merece cuidado maior.

Isso afeta especialmente:

  • onde credencial fica
  • quanto dado sensivel desce para o browser
  • o que a UI esta autorizada a assumir

SPA não e “insegura por definição”.

Mas ela exige mais disciplina sobre o que realmente fica no cliente.

Em SSR, o servidor ganha controle sobre parte do fluxo

Quando o servidor monta a resposta, ele pode:

  • ler cookie httpOnly
  • checar sessao antes de renderizar
  • evitar mandar dado desnecessario ao cliente

Isso costuma melhorar o controle de exposição.

Mas não apaga riscos:

  • API ainda precisa autorizar
  • dado sensivel ainda pode vazar se for serializado sem critério
  • cache e CDN ainda podem complicar conteúdo autenticado

Em API, a fronteira de recurso fica explicita

A API e o lugar em que a decisão de acesso precisa sobreviver mesmo sem interface.

Se a segurança depende do frontend ou do SSR para funcionar, a API ainda esta fraca.

Aqui as perguntas certas costumam ser:

  • quem esta fazendo a request?
  • que recurso esta sendo acessado?
  • que ação esta sendo pedida?
  • de onde vem esse dado?

O ponto central e trusted boundary

Segurança boa nessas arquiteturas não começa decorando stack.

Começa perguntando:

  • o que esta no browser?
  • o que fica no servidor?
  • o que cruza a API?
  • quem pode manipular esse valor antes dele chegar aqui?

Sem isso, o time só vai redistribuindo risco entre camadas.

Exemplo simples

Compare tres cenarios.

SPA pura:

  • browser guarda parte do estado de auth
  • frontend chama API direto

SSR:

  • servidor le credencial e monta pagina autenticada
  • browser recebe menos decisão crítica pronta

API:

  • ainda precisa validar acesso mesmo que a request venha de frontend “confiavel”

Se o backend aceita que “o frontend já filtrou”, o desenho falhou.

Se o SSR serializa dado demais para o cliente, o desenho falhou por outro lado.

Não e a mesma falha.

Erros comuns

  • Achar que SSR torna autorização opcional na API.
  • Tratar frontend como parte confiavel só porque foi escrito pelo próprio time.
  • Descer dado sensivel demais para o cliente por conveniencia.
  • Discutir armazenamento de token sem falar de trusted boundary.
  • Usar a mesma explicação de risco para SPA e SSR como se fossem a mesma coisa.

Como um senior pensa

Quem tem mais experiência organiza o problema por camada.

O raciocínio costuma ser:

“O que esta exposto no browser? O que o servidor consegue validar antes de responder? E o que a API precisa garantir mesmo se o cliente estiver comprometido?”

Essa forma de pensar deixa a conversa menos religiosa e mais arquitetural.

O que o entrevistador quer ver

Em entrevista, esse tema mede clareza de desenho.

O avaliador quer ver se você:

  • entende que o risco muda com a arquitetura
  • separa browser, servidor e API
  • não terceiriza autorização para a camada errada
  • conecta armazenamento, exposição e boundary com critério

Uma resposta forte costuma soar assim:

“Em SPA eu me preocupo mais com o que fica acessivel no browser. Em SSR eu ganho mais controle no servidor, mas a API continua precisando autorizar do mesmo jeito. O desenho de segurança melhora quando eu separo claramente o que esta no cliente, o que o servidor sabe e o que a API valida.”

SPA, SSR e API não sao a mesma conversa de segurança em embalagens diferentes.

Quando a camada muda, a superficie de risco muda junto.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Parte da trilha: Trilha para entrevistas de senior frontend (13/15)

Próximo artigo Sessao, Token, Cookie, Refresh Token e Expiração Artigo anterior Permissoes, Roles e Acesso por Recurso

Continue explorando

Artigos relacionados