リンクのtarget=_blankには「rel=noopener」でセキュリティ対策
リンクを新規ウィンドウ(タブ)で開く「target=”_blank”」のセキュリティ対策としての「rel=”noopener”」についてメモしておきます。
外部サイトへリンクする際に便利なtarget=”_blank”ですが、フィッシング詐欺に利用されてしまう可能性があるということで、そのセキュリティ面での脆弱性対策としてリンクに「rel=”noopener”」を追記するとよいようです。 リンクへの実装はとても簡単で、以下のようにa要素に追記するだけでOKです。<a href="https://www.hoge.com" target="_blank" rel="noopener">〜</a>
target=”_blank”の何が怖いのか
では何が問題なのかというと、新しく開かれたウィンドウでJavaScriptのwindow.openerを使用し、親ウィンドウ(リンク元)を操作できてしまう点です。 以下のようなたった1行があるだけで、target=”_blank”で新しく開かれたウィンドウから親ウィンドウを「hoge.com」へ遷移させることもできてしまいます。それだけでなく、親ウィンドウのオブジェクトにアクセスすることさえ可能だということです。window.opener.location="https://www.adc.com/"
