Existem duas maneiras básicas de passar dados confidenciais para o cliente HTML5 e vincular a página html5.html à sua página pai real como iframe ou chamá-la como guia pop-up. O método URI passa os dados necessários na solicitação URI , no entanto, os dados são anexados após o hash /software/html5.html# ***** e, portanto, não são visíveis dentro da solicitação real ao servidor, o que o torna muito mais seguro e seguro. name passando dados no formulário JavaScript para o iframe/guia pop-up final.
IFRAME
R: usando URI como no exemplo anexado iframe_bad_uri.html src="/software/html5.html#user=mylogin&pass=mypass"
mas esta abordagem pode ter as seguintes desvantagens
1. AdBlockers podem recusar tais links
2. Os filtros da Internet podem filtrar tais solicitações de link como possíveis danos.
3. Os navegadores móveis podem ter limites de caracteres específicos do navegador para solicitações de URI .
4. O histórico pode conter tal link.
Certifique-se de usar tags de atributo para iframe para ativar o modo de tela cheia como no exemplo a seguir
<iframe src="***your_link/software/html5.html" -ms-allowfullscreen -webkit-allowfullscreen -moz-allowfullscreen allowfullscreen height="100%" width="100%"></iframe>
B : ou usando o objeto window.name como no exemplo anexado iframe_good_name.html
src="/software/html5.html" name="base64_encoded_string"
Essa abordagem tem apenas uma desvantagem: requer o mecanismo JavaScript ativado , mas como o cliente HTML5 não pode ser executado sem JavaScript, essa limitação não é considerada.
POPUP-TAB
R: usando URI como no exemplo em anexo popup_bad_uri .html
mesmas desvantagens do IFRAME acima
B : ou usando o objeto window.name como no exemplo anexado popup_good _name.html
src="/software/html5.html" .... window.name = *****
A senha passada é excluída imediatamente da variável window.name na página html5.html final .
Essa abordagem pode ser muito bem usada para abrir a página na mesma guia definindo " var openinsamewindow = true; ".
O exemplo para POPUP-TAB está funcionando pelo menos até o atual IE Edge v44.18362.1.0 (07.07.19) mesmo em situação de interdomínio, onde em exemplos de pop-up antigos o IE Edge esvaziou a variável window.name , então este popup_good _name.html é relativamente seguro de usar, mesmo no IE Edge moderno para cenários entre domínios.
Todas as abordagens acima garantem que os dados de logon sejam passados para o servidor em formato criptografado assimétrico, mesmo no cenário HTTP , o que o torna ainda mais seguro se o seu ambiente for atacado por DNS ou hackers obtiverem acesso ao seu certificado privado, uma vez que o par de chaves públicas/privadas dos servidores é regenerado em cada inicialização do servidor HTML5 e não tem nenhuma relação com a chave privada usada para o protocolo HTTPS .
Desde HTML5 v6.39 é possível passar dados no método POST reutilizando o sistema de tickets de logon "/socket.io/LPW" mas lembre-se que ao contrário do código IFRAME/POPUP-TAB passar dados por POST é inseguro, primeiro porque os usuários podem ver todos dados passados no modo de desenvolvedor de navegadores de qualquer maneira, e segundo porque se o protocolo HTTP usado ou o certificado HTTPS foi comprometido, ou o ambiente foi atacado por DNS , este método POST não fornece nenhuma segurança extra para evitar vazamento futuro de dados. Veja também o exemplo em postdata.html anexadopara ligá-lo em seu ambiente real. Porém sempre que possível evite o uso do método POST , se você realmente contar com segurança.