新規タブで開く

下記を使用すること!

<a href="ここにリンク先のURLを入れる" target="_blank" rel="noopener noreferrer">新規タブで開く</a>

詳細(target=”_blank”の問題点

①セキュリティについての問題点(概要)

target=”_blank” のセキュリティ上の脆弱性(セキュリティ上のリスク)について、グーグルのデベロッパー用のサイトで詳しく説明されています。参考:Tools for Web Developers

上記ページには、window.openerを使用することで、親ウィンドウのオブジェクトにアクセスを行ったりwindow.opener.location = newURL によって親ページのURLを書き換えることができる問題があると記載されています。

target=”_blank”のリンクは別タブ(別ウィンドウ)で開かれるため、リンク元のページとリンク先のページの両方が一つのブラウザ内に存在していることになります。

そのように開かれたリンク先のページに、もし悪意をもったJavaScriptが記載されていたら、リンク元であるページを好き勝手に改ざんできてしまう可能性が考えられるのです。

target=”_blank”の問題への対処法

①noopenerの指定

noopener を指定することで、リンク先からwindow.openerを使ってリンク元が参照できなくなります。さらに、リンク先とリンク元が別のものとして扱われるためパフォーマンスに対しての対策にもなっているのです。

②noreffererの指定

ブラウザによっては、noopenerがサポートされていないため、noopenerと合わせてnoreffererを指定するのが好ましいと言えるでしょう。

noreffererを指定することで、リンク先にリンク元のリンク情報が送られないようになるため、 noopenerと同じくリンク先からの参照ができなくなります。

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です