Эта страница ещё не переведена; вы читаете оригинал на португальском.
ADR 0239 — CSP frame-src local para o Web preview do entregável
- Status: aceito
- Data: 2026-11-02
- Revisa: o CSP do
docker/web/nginx.conf(herdado do ADR 0058), só no que toca quadros.
Contexto
A AT-685 mostra o entregável do projeto, rodando na máquina de quem usa, num
iframe dentro do Brabo. Sem frame-src, o CSP cai em default-src 'self' e
o navegador bloqueia o quadro.
Decisão
- O CSP do nginx do web ganha
frame-src http://localhost:* http://127.0.0.1:*. Nada dehttps:nem de domínio externo. - O componente só aceita URL que passa em
urlLocalSegura; URL externa é recusada e a tela diz o motivo em texto. - O
sandboxdo quadro é mínimo:allow-scripts allow-same-origin. Os dois juntos só são seguros porque a origem do quadro (localhost:<porta>) difere da do Brabo: o quadro não alcança DOM, cookie nem storage do Brabo.allow-forms,allow-popupseallow-top-navigationficam de fora. frame-ancestors 'none'eX-Frame-Options: DENYnão mudam: continuam proibindo que OUTROS emoldurem o Brabo.
Consequências
- Risco residual: a página local emoldurada roda código arbitrário do próprio
projeto do usuário, na máquina dele, com a origem dela. Se o Brabo for
servido em
localhostna MESMA porta do entregável, a isenção de origem some; por isso o entregável não pode ocupar a porta do Brabo. - Instalação com Brabo em servidor remoto verá o
iframeapontar para olocalhostdo navegador, não do servidor; é a semântica pretendida.