Segurança e implantação
Pontos identificados na especificação atual. Eles não tornam o uso irrestrito seguro: avalie e aplique mitigações no produto antes de expor o Webphone publicamente.
Iframe sem restrição de origem
Segundo a especificação, qualquer origem pode incorporar /embed. Um site de terceiros pode exibir o Webphone de um usuário se obtiver a URL com o token.
postMessage sem validação do remetente
Atualmente não há validação da origem/janela remetente das mensagens postMessage. Qualquer página que contenha ou seja contida pelo iframe pode enviar mensagens a ele.
API key do tenant na URL
Com RuntimeQueryKey, o token é a API key do tenant e aparece na URL: fica em histórico, logs de servidores e proxies e pode vazar pelo cabeçalho Referer.
Chave sem rotação, revogação ou expiração
TenantApiKey não expira, não tem scopes e não há rotação/revogação automática. Um vazamento dá acesso a configuração e bootstrap até troca manual.
Senha SIP em respostas
GET /webphone/user-info retorna extension_password. Nunca repasse essa resposta inteira ao navegador nem a registre em logs.
Mitigações recomendadas no produto
Recomendações deste portal; não fazem parte da especificação atual.
- Restringir quem pode incorporar /embed (por exemplo, Content-Security-Policy frame-ancestors com a lista de domínios autorizados do tenant).
- Validar event.origin e event.source em todo handler de postMessage, e usar targetOrigin explícito (nunca "*") ao enviar.
- Substituir a API key na URL por um token de curta duração e escopo mínimo, emitido pelo backend por usuário/sessão.
- Oferecer rotação e revogação da API key do tenant.
- Manter configuração, administração e bootstrap acessíveis somente a partir de servidores (sem CORS para navegadores).
- Até lá: usar referrerpolicy="no-referrer", não registrar URLs com token em logs/analytics e limitar a exposição às páginas autenticadas da sua aplicação.
Incorporação por iframe
Este portal não carrega o iframe nem o script reais.
<!-- Trecho FICTÍCIO para ilustração. Não use sem as mitigações abaixo. -->
<iframe
src="https://webphone.telenova.com.br/embed?userid=usuario-123&token=SUA_TENANT_API_KEY"
allow="microphone"
referrerpolicy="no-referrer"
title="Webphone Telenova"
></iframe>Como este portal trata a Webphone API
- Nenhuma rota é executada de verdade: o teste real está desabilitado para todas.
- Respostas de exemplo são sintéticas, com senhas e chaves mascaradas.
- Os trechos de código usam apenas placeholders e chamadas sensíveis aparecem como código de servidor.