Hay dos formas básicas de pasar datos confidenciales al cliente HTML5 y vincular la página html5.html a su página principal real como iframe o llamarla como pestaña emergente. El método URI pasa los datos necesarios en la solicitud URI; sin embargo, los datos se adjuntan después del hash /software/html5.html#***** y, por lo tanto, no son visibles dentro de la solicitud real al servidor, lo que lo hace mucho más seguro y ventana. método de nombre pasando datos en formato JavaScript al iframe/pestaña emergente final.
MARCO INTERIOR
R: usando URI como en el ejemplo adjunto iframe_bad_uri.html
src="/software/html5.html#user=mi inicio de sesión&contraseña=micontraseña"
pero este enfoque puede tener las siguientes desventajas
1. Los AdBlockers pueden rechazar dichos enlaces.
2. Los filtros de Internet pueden filtrar dichas solicitudes de enlaces como posibles daños.
3. Los navegadores móviles pueden tener límites de caracteres específicos del navegador para solicitudes de URI.
4. El historial puede contener dicho vínculo.
B: o usando el objeto window.name como en el ejemplo adjunto popup_good_name.html
src="/software/html5.html" .... ventana.nombre = *****
La contraseña pasada se elimina inmediatamente de la variable window.name en la página html5.html final.
Este enfoque se puede utilizar muy bien para abrir una página en la misma pestaña configurando "var openinsamewindow = true;".
El ejemplo para POPUP-TAB funciona al menos hasta IE Edge v44.18362.1.0 (07.07.19) incluso en una situación entre dominios, donde en ejemplos emergentes antiguos, IE Edge ha vaciado la variable window.name, por lo que popup_good_name.html es relativo. seguro de usar incluso en IE Edge moderno para escenarios entre dominios.
Todos los enfoques anteriores garantizan que los datos de inicio de sesión se pasen al servidor en forma cifrada asimétrica incluso en un escenario solo HTTP, lo que lo hace incluso más seguro si su entorno fue atacado por DNS o si los piratas informáticos obtuvieron acceso a su certificado privado, ya que el par de claves pública/privada del servidor se regenera. en cada inicio de servidor HTML5 y no tiene relación con la clave privada utilizada para el protocolo HTTPS.
Desde HTML5 v6.39 es posible pasar datos en el método POST reutilizando el sistema de tickets de inicio de sesión "/socket.io/LPW", pero recuerde que, a diferencia del código IFRAME/POPUP-TAB, pasar datos mediante POST no es seguro, en primer lugar porque los usuarios pueden ver todos pasó datos en el modo de desarrollador de los navegadores de todos modos, y en segundo lugar, porque si el protocolo HTTP utilizado o el certificado HTTPS se vio comprometido, o el entorno fue atacado por DNS, este método POST no proporciona ninguna seguridad adicional para evitar futuras fugas de datos. Tome también el ejemplo del postdata.html adjunto para vincularlo a su entorno real. Sin embargo, siempre que sea posible, evite el uso del método POST, si realmente cuenta con la seguridad.
PD: los ejemplos adjuntos pueden necesitar modificaciones adicionales para sus necesidades, así que trátelos en consecuencia como un código de práctica.
Para descargar ejemplos *.html, haga clic con el botón DERECHO del mouse y luego elija en el menú contextual "Guardar como..."
Asegúrese de utilizar etiquetas de atributos para iframe para habilitar el modo de pantalla completa como en el siguiente ejemplo
<iframe src="***your_link/software/html5.html" -ms-allowfullscreen -webkit-allowfullscreen -moz-allowfullscreen enablefullscreen height="100%" width="100%"></iframe>
B: o utilizando el objeto window.name como en el ejemplo adjunto iframe_good_name.html
src="/software/html5.html" nombre="base64_encoded_string"
Este enfoque tiene sólo una desventaja: requiere un motor JavaScript habilitado, pero dado que el cliente HTML5 no puede ejecutarse sin JavaScript, esta limitación no se considera.
PESTAÑA EMERGENTE
R: usando URI como en el ejemplo adjunto popup_bad_uri.html
Mismas desventajas que con IFRAME muy arriba.