No Webapp o TWebEngine é um <Iframe/> e, por questões de segurança (Same-origin_policy), os navegadores bloqueiam scripts que tentam acessar ou interagir com um iframe que possua uma origem diferente da página principal. Essa restrição é fundamental para evitar falhas de segurança, como por exemplo a técnica maliciosa de Clickjacking. Quando a origem (protocolo, nome do host e porta) do conteúdo dentro do TWebEngine difere da origem do Webapp, o navegador impõe bloqueios que afetam dois mecanismos críticos:
🚨 O mecanismo da Porta Multiprotocolo pode ajudar, garantindo que possam publicar sub-rotinas, respeitando o mesmo protocolo+host-name+porta, mudando apenas a rota para esta sub-rotina. Exemplo: Neste exemplo temos dois serviços (sub-rotinas) utilizando o mesmo caminho, cada um em sua respectiva rota, o primeiro o WebApp, o segundo o WebMonitor.
|
A origem é considerada diferente se pelo menos uma das seguintes partes do endereço não for mantida: protocol://hostname:port/... O protocolo, o nome do host e a porta devem ser os mesmos. OBS: Se pelo menos uma das seguintes partes do endereço for diferente, o smartclient pode perder por controle de inatividade e navegação pelo (iframe/twebengine) pode cair.
|
Para garantir o funcionamento correto, o Webapp e o conteúdo em PO-UI devem compartilhar a mesma origem. A recomendação é o uso da Porta Multiprotocolo. Exemplo de configuração no AppServer:
|