Corsi on-line

I rischi nascosti del “target=_blank”

Al di là delle posizioni del W3C in merito a come andrebbero effettuati i collegamenti con risorse esterne alla pagina Web corrente, specifiche che ormai sembrerebbero occupare di fatto una posizione di secondo piano rispetto alle implementazioni decise dai browser vendor,  l’utilizzo di un formato per i link basato sul target=_blank sembrerebbe nascondere un’insidia fino ad ora poco discussa.

phishingAd introdurre l’argomento è stato di recente uno sviluppatore di @jitbit che tramite un suo articolo su Medium ha evidenziato come il contenuto che viene collegato in questo modo possa conseguire un accesso parziale all’oggetto window.opener. Nello specifico tale proprietà restituisce una referenza alla finestra che ha generato un’altra finestra.

Tale dinamica è ben conosciuta dagli sviluppatori JavaScript che utilizzano il metodo window.open() del linguaggio per disporre da una finestra di destinazione di dettagli riguardanti la finestra di origine (parent window). L’utilizzo di una semplice funzione come window.opener.close() per la chiusura  da un’idea delle potenzialità di tale proprietà a livello di controllo.

L’autore sottolinea come la nuova scheda aperta sia in in grado di agire su window.opener.location per un direzionamento verso risorse deputate al phishing; nello stesso modo, e almeno in teoria, si potrebbe eseguire del codice JavaScript nella pagina che ha determinato l’apertura della risorsa esterna senza che l’utilizzatore possa avere alcun sospetto o segnalazione dell’azione malevola in corso.

Per evitare tale pericolo è possibile aggiungere al codice del link la direttiva rel="noopener" che diventerà rel="noopener noreferrer" per le versioni di Firefox non in grado di supportare il formato abbreviato. Potrebbe essere inoltre utile resettare la proprietà opener ogni volta che si utilizza window.open():

var newWnd = window.open();
newWnd.opener = null;

Teoricamente, il solo fatto di linkare una pagina esterna, in presenza o meno di target=_blank, espone l’utilizzatore ad un pericolo, questo perché una risorsa sicura al momento del collegamento potrebbe nel tempo subire modifiche, essere attaccata o sostituita con un’altra della quale non conosciamo l’origine. Quello del target=_blank è quindi soltanto un esempio dei rischi connessi alla comunque spesso necessaria (vedi fonte alla fine del post) attività di outbound linking.

I link esterni andrebbero controllati quindi periodicamente, anche per esigenze legate al SEO, i motori di ricerca non gradiscono infatti la presenza di collegamenti interrotti o che puntano a siti malevoli.

Via @jitbit

Post correlati
I più letti del mese
Tematiche