Recursos · 116
postMessage: verificar origem, janela e comando
Definir um contrato de mensagens de iframe ou popup que rejeite emissores e dados inesperados.
Atualizado · 2 min
O que este guia ajuda a alcançar
- Definir interlocutores e tipos
- Validar antes de produzir efeitos
- Testar navegação e mensagens fora do contrato
Verificação rápida
- Contrato de origem, janela, tipo e dados mínimos.
- Validação e rejeição sem efeitos de negócio.
- Matriz de rejeições e limpeza de listeners.
Método passo a passo
- 1
Definir interlocutores e tipos
Liste origens exatas, referência da janela e tipos úteis. Use targetOrigin preciso para dados sensíveis. A origem inclui protocolo, anfitrião e porta; procurar uma substring no domínio não valida o emissor.
Contrato de origem, janela, tipo e dados mínimos.
- 2
Validar antes de produzir efeitos
Compare event.origin e, nesta integração, event.source com a janela esperada. Valide esquema, valores e estado da operação. Trate conteúdo como dados, sem eval ou inserção HTML. Uma origem aprovada não substitui autorização no servidor.
Validação e rejeição sem efeitos de negócio.
- 3
Testar navegação e mensagens fora do contrato
Teste domínio semelhante, outra porta, outra janela da mesma origem, campos inválidos e mensagens após o fecho. Remova listeners desnecessários e invalide trocas concluídas. As respostas usam uma origem já aprovada mesmo após navegação da janela.
Matriz de rejeições e limpeza de listeners.
Caso de aceitação reproduzível
Exemplo fictício: estes dados não descrevem clientes nem resultados observados.
Ver dados do caso
{
"allowed_origin": "https://widget.example",
"observed_origin": "https://widget.example",
"expected_window": "active_iframe",
"observed_window": "another_window",
"payload_schema_valid": true,
"expected": "reject_without_effect"
}Decisão esperada
Exemplo fictício: https://widget.example é aprovada, mas event.source é outra janela. O contrato exige a iframe ativa: rejeite a mensagem sem emitir um comando.
O seu caderno de aceitação
Registe observações sobre os critérios deste guia. Um registo não é uma certificação.
O caderno não guarda automaticamente. Exporte antes de sair.
Os filtros não limitam exportações. As ações incluem bloqueios e critérios não examinados.
A importação substitui observações depois da sua confirmação.
Indicadores de gestão
| Indicador | O que mede | Primeira ação |
|---|---|---|
| Casos inesperados rejeitados | Casos negativos rejeitados sem efeitos / casos negativos executados | Registar origem, janela e estado |
| Trocas aprovadas concluídas | Cenários previstos concluídos / cenários previstos testados | Separar receção e efeito confirmado |
Erros comuns
Perguntas frequentes
Basta verificar event.origin?
Não. Verifique janela, estrutura e estado. O servidor tem de verificar permissões para a ação.
Referências oficiais
As referências apoiam o método. Adapte as verificações ao seu contexto; elas não são uma certificação. Os títulos das referências originais e os documentos de origem podem estar em outro idioma.
Referências consultadas em .






