Aviso de vulnerabilidade de segurança com a tag HTML <a> e como se proteger!
A tag HTML <a> define um hyperlink, que é usado para ligar de uma página para outra, como no exemplo abaixo:
<a href="https://google.com">Google</a>
Assim como muitas tags, a tag <a> também possui atributos e uma delas é o atributo target, que especifica onde abrir o link e um dos valores para esse atributo é o _blank, onde você diz ao navegador para abrir o link em um nova guia ou janela (de acordo com a preferência do usuário):
<a href="https://google.com" target="_blank">Google</a>
É AI QUE MORA O PERIGO!
O uso da target="_blank" dá ao site de abertura acesso parcial ao objeto window.opener via JavaScript, que permite que essa página acesse e altere o window.opener.location da sua página e potencialmente redirecionam os usuários para sites de malware ou phishing.
Traduzindo pro Português: Se a página a que você se refere contém código malicioso, ela pode usar o backdoor (window.opener) do seu site para sequestrar o navegador do usuário e, por exemplo, redirecioná-lo para um site de phishing perigoso que rouba suas informações ou instalar malware em seu computador.
O que fazer para evitar isso?
Simples. Sempre que usar target="_blank" para páginas que você não controla, adicione rel="noopener" a sua tag <a> para evitar que o objeto window.opener seja enviado com a solicitação. Um valor de atributo rel="noopener" em um elemento de link especifica que o recurso vinculado não poderá acessar ou adulterar a página atual:
<a rel="noopener" target="_blank" href="https://google.com">Google</a>
Isso é tudo. Abraços!!
Referências Biliográficas: