aタグのtarget="_blank"には脆弱性があった【新規ウィンドウで開く】
aタグのtarget=“_blank”とは、リンク作成時に新規ウィンドウで開くときに使用する属性です。 実際に書いてみると、こんな感じ
<a href="https://took.jp" target="_blank">リンク</a>
これを実装し、クリックすると、新規ウィンドウでtook.jpのサイトが開かれます。 では、問題点についてみていきましょう。
問題点
1.パフォーマンスの低下 リンク先サイト と リンク元サイトは同じプロセスで動作しているため、リンク先サイトで高負荷のjavascriptが実行された場合、リンク元のパフォーマンスも落ちてしまう。 2.リンク元サイトのURLを書き換えられる これは、わかりにくいので、実際に試してみましょう。 ここをクリック ※ごめんなさい。現在は非公開にしています。 クリックすることで、新規タブでSampleページが開き、現在のタブは、took.jpのトップページに変わったはずです。 これは、リンク先サイトで、
<script>
window.onload = function() {
window.opener.location = 'https://took.jp';
}
</script>
というスクリプトを実行させているからです。 リンク先が信用できるサイトなら良いですが、信用できないサイトの場合は、リンク元のサイトを操られる可能性があるので、危険です。
解決法
rel=”noopener”をつける。 これだけです。 実際に書くと、こんな感じ。
<a href="https://took.jp" target="_blank" rel="noopener">リンク</a>
以下のサイトを参考にしました。 https://developers.google.com/web/tools/lighthouse/audits/noopener?hl=ja