Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

270
Visualizações
¿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 Respostas
Responde à pergunta

0

puedes manejar esto con este evento:

 window.onunload = function(){ console.log('tab closed') }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda