window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versión: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster ya existe') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Seguridad de aplicaciones web. Vulnerabilidad Target="_blank" - The Codest
The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2021-04-28
Desarrollo de software

Seguridad de las aplicaciones web. Vulnerabilidad Target="_blank

Lukasz Kolko

El uso de aplicaciones web se ha convertido en algo habitual en todas las sociedades. Tratamos con ellas todos los días. Podemos decir que nos rodean. Las utilizamos en el trabajo, para entretenernos y como herramientas para comunicarnos con los demás. A menudo, como usuarios y como desarrolladores, no nos damos cuenta de la cantidad de vulnerabilidades de seguridad que se descubren cada día en dichas aplicaciones.

Recientemente hemos escrito sobre seguridad de las aplicaciones web en lo que respecta a la vulnerabilidad XSS. Esta vez queremos llamar su atención sobre otro peligro.

La vulnerabilidad analizada en este documento lleva mucho tiempo entre nosotros y, debido a su sencillez, a menudo es subestimada o incluso desconocida por algunos desarrolladores de aplicaciones web.

Casi todas las aplicaciones web contienen enlaces que, al pulsarlos, se abren en una pestaña nueva para no cerrar la pestaña con la página original. Este es un comportamiento preferido porque los creadores quieren que el usuario pase el mayor tiempo posible en la aplicación.

Un ataque que explota esta vulnerabilidad es el llamado "tabnabbing inverso". Se trata de un ataque en el que una página enlazada desde la página objetivo es capaz de sustituir esa página por, por ejemplo, un sitio de phishing.

Escenario de ataque

  1. Supongamos que la víctima utiliza Facebook, conocido por abrir enlaces a través de target="_blank",
  2. Crea una página viral falsa,
  3. Crear un sitio web de phishing que se parezca a la página de inicio de sesión de Facebook,
  4. Ponga el siguiente código en la página viral, por ejemplo, a través de una vulnerabilidad XSS encontrada
    window.opener.location = 'https://phishing-website/facebook.com';
  5. La víctima hace clic en el enlace de Facebook a la página viral,
  6. La página viral redirige la pestaña de Facebook al sitio web de phishing pidiendo al usuario que inicie sesión de nuevo.

Así, podemos cambiar la pestaña padre de la página de destino infectada por el objeto ventana de la API Web. Normalmente, un ataque implica el uso de varias vulnerabilidades descubiertas y estafas de phishing en paralelo.

El problema

Cuando abrimos una nueva pestaña en el navegador utilizando un enlace con la etiqueta target="_blank" tenemos acceso a nuestro "referente" desde la nueva pestaña. Más concretamente, al atributo Abridor propiedad del Ventana que devuelve una referencia a la ventana que la abrió, nuestra página padre.

Esto se debe al comportamiento del Window.open() función. Con acceso a este atributo, podemos reemplazar fácilmente nuestra página padre. Tenga en cuenta que algunos navegadores modernos pueden hacer que Abrir.ventana en la pestaña de destino como null para evitar este comportamiento.

Código de ejemplo

<code> <a href="https://github.com" target="_blank">Ir a GitHub - enlace infectado</a>
const
 si (enlace)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Arriba puedes ver el enlace infectado que originalmente abre una nueva pestaña con una página de GitHub pero mientras tanto cambia nuestra página "padre" al sitio de Stackoverflow.

Ejemplo en directo

1. Enlaces HTML

Añadir rel="noopener noreferrer" a la <a> etiqueta.

En rel define la relación entre un recurso enlazado y el documento actual.

noopener indica al navegador que navegue al objetivo sin conceder acceso al padre que lo abrió. Pestaña de destino Abrir.ventana será null.

noreferrer impide que el navegador, al navegar al destino, envíe al padre la dirección o cualquier otro valor como referrer a través de la etiqueta referente encabezado HTTP. Tenga en cuenta que el nombre de esta cabecera HTTP está intencionadamente mal escrito como "referrer".

2. JavaScript enlaces

Para el JavaScript Ventana.abierta puede añadir los valores noopener y noreferrer en el windowFeatures del Ventana.abierta pero los diferentes navegadores pueden responder de manera diferente, por lo que se recomienda hacer Abrir.ventana como null después de usar Window.open() función.

Seguir leyendo:

API de Rails y CORS. Una pizca de conciencia

Estrategias de obtención de datos en NextJS

7 razones por las que tu tienda online necesita Magento

Si te parece interesante este artículo, sigue a Lukasz en Github: https://github.com/twistezo

Artículos relacionados

Desarrollo de software

Crear aplicaciones web preparadas para el futuro: ideas del equipo de expertos de The Codest

Descubra cómo The Codest destaca en la creación de aplicaciones web escalables e interactivas con tecnologías de vanguardia, ofreciendo experiencias de usuario fluidas en todas las plataformas. Descubra cómo nuestra experiencia impulsa la transformación...

EL MEJOR
Desarrollo de software

Las 10 mejores empresas de desarrollo de software de Letonia

Conozca las principales empresas de desarrollo de software de Letonia y sus innovadoras soluciones en nuestro último artículo. Descubra cómo estos líderes tecnológicos pueden ayudarle a mejorar su negocio.

thecodest
Soluciones para empresas y escalas

Fundamentos del desarrollo de software Java: Guía para externalizar con éxito

Explore esta guía esencial sobre el desarrollo de software Java outsourcing con éxito para mejorar la eficiencia, acceder a la experiencia e impulsar el éxito de los proyectos con The Codest.

thecodest
Desarrollo de software

La guía definitiva para subcontratar en Polonia

El auge de las outsourcing en Polonia está impulsado por los avances económicos, educativos y tecnológicos, que fomentan el crecimiento de las TI y un clima favorable a las empresas.

TheCodest
Soluciones para empresas y escalas

Guía completa de herramientas y técnicas de auditoría informática

Las auditorías informáticas garantizan sistemas seguros, eficientes y conformes. Obtenga más información sobre su importancia leyendo el artículo completo.

The Codest
Jakub Jakubowicz CTO y Cofundador

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

    • Oficina 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

    es_ESSpanish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean nl_NLDutch etEstonian elGreek es_ESSpanish