window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } 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 }) }, } } })() Sicurezza delle applicazioni web. Vulnerabilità target="_blank" - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2021-04-28
Sviluppo di software

Sicurezza delle applicazioni web. Vulnerabilità target="_blank"

Lukasz Kolko

L'uso delle applicazioni web è diventato comune per ogni società. Abbiamo a che fare con esse ogni giorno. Possiamo dire che ci circondano. Le usiamo al lavoro, per l'intrattenimento e come strumenti per comunicare con gli altri. Spesso, come utenti e sviluppatori, non ci rendiamo conto di quante vulnerabilità di sicurezza vengono scoperte ogni giorno in queste applicazioni.

Recentemente abbiamo scritto di sicurezza delle applicazioni web quando si tratta di vulnerabilità XSS. Questa volta vogliamo attirare la vostra attenzione su un altro pericolo.

La vulnerabilità discussa in questo articolo è presente da molto tempo e, a causa della sua semplicità, è spesso sottovalutata o addirittura sconosciuta da alcuni. sviluppatori di applicazioni web.

Quasi tutte le applicazioni web contengono collegamenti che, se cliccati, si aprono in una nuova scheda, in modo da non chiudere la scheda con la pagina originale. Questo è un comportamento preferito perché i creatori vogliono che l'utente trascorra il maggior tempo possibile nell'applicazione.

Un attacco che sfrutta questa vulnerabilità è il cosiddetto "reverse tabnabbing". Si tratta di un attacco in cui una pagina collegata alla pagina di destinazione è in grado di sostituirla con, ad esempio, un sito di phishing.

Scenario di attacco

  1. Supponiamo che la vittima utilizzi Facebook, noto per l'apertura di link tramite target="_blank",
  2. Creare una finta pagina virale,
  3. Creare un sito web di phishing che assomigli alla pagina di accesso di Facebook,
  4. Mettere il seguente codice sulla pagina virale, ad esempio, tramite una vulnerabilità XSS trovata.
    window.opener.location = 'https://phishing-website/facebook.com';
  5. La vittima clicca sul link di Facebook alla pagina virale,
  6. La pagina virale reindirizza la scheda di Facebook al sito web di phishing, chiedendo all'utente di accedere nuovamente.

Quindi, possiamo cambiare la scheda padre dalla pagina di destinazione infetta tramite l'oggetto finestra dell'API Web. In genere, un attacco prevede l'utilizzo di diverse vulnerabilità scoperte e truffe di phishing in parallelo.

Il problema

Quando si apre una nuova scheda nel browser utilizzando un collegamento con l'opzione target="_blank" abbiamo accesso al nostro "referrer" dalla nuova scheda. Più precisamente, all'attributo apripista della proprietà Finestra che restituisce un riferimento alla finestra che l'ha aperta, la nostra pagina madre.

Questo è dovuto al comportamento del Finestra.open() funzione. Con l'accesso a questo attributo, possiamo facilmente sostituire la nostra pagina madre. Si noti che alcuni browser moderni possono rendere finestra.apertura nella scheda di destinazione come nullo per evitare questo comportamento.

Codice di esempio

<code> <a href="https://github.com" target="_blank">Vai a GitHub - link infetto</a>
costitutivo
 se (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Qui sopra potete vedere il link infetto che in origine apre una nuova scheda con una pagina GitHub, ma nel frattempo cambia la nostra pagina "madre" in quella di Stackoverflow.

Esempio dal vivo

1. Collegamenti HTML

Aggiungi rel="noopener noreferrer" alla <a> tag.

Il rel definisce la relazione tra una risorsa collegata e il documento corrente.

noopener indica al browser di navigare verso la destinazione senza concedere l'accesso al genitore che l'ha aperta. Scheda di destinazione Finestra.opener sarà nullo.

noreferrer impedisce al browser, quando si naviga verso la destinazione, di inviare al genitore l'indirizzo o qualsiasi altro valore come referrer tramite l'opzione referente Intestazione HTTP. Si noti che il nome di questa intestazione HTTP è intenzionalmente scritto in modo errato come "referrer".

2. JavaScript collegamenti

Per il modello JavaScript Finestra.open è possibile aggiungere i valori noopener e noreferrer nel finestraCaratteristiche del parametro Finestra.open ma i diversi browser possono rispondere in modo diverso, per cui si consiglia di rendere la funzione Finestra.opener come nullo dopo aver utilizzato Finestra.open() funzione.

Per saperne di più:

API Rails e CORS. Un pizzico di consapevolezza

Strategie di recupero dei dati in NextJS

7 motivi per cui il vostro negozio online ha bisogno di Magento

Se avete trovato interessante questo articolo, seguite Lukasz su Github: https://github.com/twistezo

Articoli correlati

Sviluppo di software

Costruire applicazioni web a prova di futuro: le intuizioni del team di esperti di The Codest

Scoprite come The Codest eccelle nella creazione di applicazioni web scalabili e interattive con tecnologie all'avanguardia, offrendo esperienze utente senza soluzione di continuità su tutte le piattaforme. Scoprite come la nostra esperienza favorisce la trasformazione digitale e il business...

IL CANCRO
Sviluppo di software

Le 10 principali aziende di sviluppo software con sede in Lettonia

Scoprite le migliori aziende di sviluppo software della Lettonia e le loro soluzioni innovative nel nostro ultimo articolo. Scoprite come questi leader tecnologici possono aiutarvi a migliorare la vostra attività.

thecodest
Soluzioni per aziende e scaleup

Essenziali di sviluppo software Java: Guida all'outsourcing di successo

Esplorate questa guida essenziale sullo sviluppo di software Java con successo outsourcing per migliorare l'efficienza, accedere alle competenze e guidare il successo del progetto con The Codest.

thecodest
Sviluppo di software

La guida definitiva all'outsourcing in Polonia

L'aumento di outsourcing in Polonia è guidato dai progressi economici, educativi e tecnologici, che favoriscono la crescita dell'IT e un clima favorevole alle imprese.

IlCodesto
Soluzioni per aziende e scaleup

Guida completa agli strumenti e alle tecniche di audit IT

Gli audit IT garantiscono sistemi sicuri, efficienti e conformi. Per saperne di più sulla loro importanza, leggete l'articolo completo.

The Codest
Jakub Jakubowicz CTO e cofondatore

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

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