Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

267
Vistas
¿Cómo puedo detectar cuando un usuario ha cerrado una pestaña?

El sitio web para el que estoy desarrollando utiliza una mezcla de .NET (aspx), Javascript y jQuery. Buscando una vulnerabilidad que es el resultado del siguiente escenario:

  1. El usuario A inicia sesión en www.example.com.au mientras tiene varias pestañas abiertas.
  2. El usuario A cierra la pestaña que ha iniciado sesión en el sitio web anterior, pero no el navegador.
  3. El usuario A luego sale de la computadora.
  4. El usuario B se sienta en la misma computadora/misma sesión del navegador y va a www.example.com.au , lo que le otorga al usuario B acceso total a la cuenta del usuario A.

Si bien hay un tiempo de espera del lado del servidor para la sesión del usuario después de 10 minutos de inactividad, sigue siendo una ventana en la que se puede explotar esta vulnerabilidad, aunque sea de nicho. Mi primera puñalada en esto consistió en:

  1. JavaScript que utiliza el evento onbeforeunload para establecer un indicador de almacenamiento local en verdadero. La creación de esta bandera se realiza en la pantalla de inicio de sesión (aplicación separada).
  2. Luego, otro JavaScript verifica si el indicador es verdadero después de cargar cada página dentro de este sitio web y, de ser así, cierra la sesión. He tenido que incluir varios elementos en la lista blanca para garantizar que esto no se active en cada descarga de página.

FRAGMENTO DE CÓDIGO: ( código aquí )

En su mayor parte, tuve éxito, pero tuve descargas muy inconsistentes (activando el cierre de sesión) al interactuar con elementos de intervalo/opción que cargan otra pantalla. Sabía de la incomodidad de onbeforeunload de navegador a navegador/versión a versión, pero en ese momento era la única idea que (en su mayoría) funcionaba, así que mi pregunta es:

¿Hay una mejor manera de resolver este tipo de vulnerabilidad dentro de la pila que se está utilizando? Cualquier sugerencia conceptual o incluso ejemplos de fragmentos de código sería increíble. Soy un desarrollador bastante nuevo y quiero aprender.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

puedes manejar esto con este evento:

 window.onunload = function(){ console.log('tab closed') }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda