27 de Janeiro de 2025
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
Founder & Engineer
4 min Intermediario Sistemas
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
- SPA, SSR e API expoem superficies diferentes e pedem perguntas diferentes de segurança.
- Autorização continua no backend mesmo quando a UI parece controlar o fluxo.
- O lugar onde a credencial vive muda o risco: browser, servidor e borda não se comportam igual.
- Boa arquitetura de segurança começa separando transporte, exposição e trusted boundary.
Checklist de pratica
Use isto ao responder
- Consigo explicar o que muda de risco entre SPA, SSR e API?
- Sei dizer onde a credencial fica mais exposta em cada desenho?
- Consigo responder onde autorização deve acontecer mesmo com SSR?
- Sei explicar em entrevista por que cliente, servidor e API não entram na mesma caixa de segurança?
Você concluiu este artigo
Parte da trilha: Trilha para entrevistas de senior frontend (13/15)
Compartilhar esta página
Copie o link manualmente no campo abaixo.