Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Painel

No SmartClient HTML o TWebEngine é um <Iframe/> e por questões de segurança (Same-origin_policy) os navegadores bloqueiam scripts que tentam acessar um iframe com uma origem diferente.

Isso seria uma falha de segurança e como por exemplo a técnica maliciosa de Clickjacking

Os eventos que controlam o timeout do Smartclient são disparados pela navegação entre componentes AdvPL (Tab/Enter), porém ao utilizar o componente TWebEngine no SmartClient HTML só será possível capturar esses eventos evitando se o InactiveTimout se o protocolo, nome do host e a porta forem da mesma origem.

As configurações abaixo devem ser seguidas.

Painel
titleExemplos

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.


Extrair

Veja o que aconteceria ao tentar acessar as seguintes URLs de http://www.totvs.com/home/index.html

URLRESULTADO
http://www.totvs.com/home/other.html SUCESSO
http://www.totvs.com/dir/inner/another.phpSUCESSO
http://www.totvs.com:80   SUCESSO (porta default para HTTP)
http://www.totvs.com:2255 FALHA: diferente porta
http://data.totvs.com/dir/other.htmlFALHA: diferente hostname
https://www.totvs.com/home/index.html:80FALHA: diferente protocolo
ftp://www.totvs.com:21  FALHA: diferente protocolo & porta
https://google.com/search?q=james+bond FALHA: diferente protocolo, porta & hostname
Painel
titleConfigurando PO-UI + InactiveTimeout
Painel
titleExemplo da URL montada com Porta_Multiprotocolo + Same-origin_policy e InactiveTimeout

[General]
app_environment=environment
inactiveTimeout=60

Partindo do principio que o protocolo, nome do host e a porta

estão

são iguais, logo não teriamos problemas com o Same-origin_policy e InactiveTimeout.

Exemplo da URL montada

com Porta_Multiprotocolo + Same-origin_policy e InactiveTimeout :

 : http://hostname:1232/webapp/

Painel
titleExemplo real entre TWebEngine e Servidor Local

TWebEngine

Image Added

Servidor local

Image Added


Dessa forma o SmartClient HTML tem o controle total de inatividade pois o protocolo, nome do host e a porta satisfaz as três condições do (Same-origin_policy).