06-6777-3688
大阪のホームページ制作会社【ファ  ーストネットジャパン】BLOG

BLOG

いいね! facebook twitter

「target=”_blank”」の危険性

2019年3月3日

今回のテーマは「target=”_blank”」の危険性についてです。

この情報についてはお恥ずかしながら最近知りました。ゆえにはっきりとした確実性もないのですが
ちょっと調べてみました。
皆さんに共有していただければと思い今回のお話になります。

「rel=”noopener”」を付ける


<a>タグに「target=”_blank”」を付与する場合「rel=”noopener”」を付ける!
参考:https://developers.google.com/web/tools/lighthouse/audits/noopener?hl=ja

1)脆弱性の問題

引用:“target=”_blank” にはセキュリティ上の脆弱性もあります。
リンク先のページでは window.opener を使用して親ウィンドウのオブジェクトにアクセスしたり、
window.opener.location = newURL によって親ページの URL を変更したりできます。”


<a>タグで外部にリンクをする場合、外部のリンクが完全に信用できる自社サイトだったりする場合はその必要はないのですが
単なる勝手リンクである場合は「rel=”noopener”」をつけるべきということです。
つまりリンク先でJavascriptを使えばリンク元を操作できるようになるというものです。

では具体的にどういった操作ができてしまうのか?
リンク先のページのソースのJSに
window.opener.location = http://hogehoge.com
と書かかれている、自分のサイト(リンク元)が勝手にhogehoge.comに置きかわってしまいますのでそこでフィッシングに利用されたり
ウイルスを仕込ませるなんてことができてしまいます。

しかしながらリンク先のページはちゃんとしているところにリンクしているから大丈夫!って思っていませんか?
いえいえそんなことはありません。
ホームページは日々どんどん閉鎖されていきます。
閉鎖後にそのドメインが悪意ある人にわたりそのような地雷をしこまれるという可能性は大いにあります。
そういった観点から外部サイトへのリンクは気をつけましょう!

ちなみにWordpressには投稿時に「リンクを新しいタブで開く」にチェックをいれると自動的に「rel=”noopener”」が付与されます。

ちなみにデモを作ってみましたのでお試しください!
https://www.1st-net.jp/blog/sample/blank.html

 

2)パフォーマンスの問題

引用:“target=”_blank” を使用して任意のページから別のページにリンクしている場合、リンク元のページとリンク先のページは同じプロセスで動作します。
そのため、リンク先のページで負荷の高い JavaScript が実行されていると、リンク元のページのパフォーマンスが低下するおそれがあります。”

いわゆるリンク先でJavascriptなどで高負荷なプロセスが実行されるとリンク元も同様なプロセスが実行されるためリンク元のパフォーマンスが落ちるということらしいです。

外部リンクの<a>タグで、「target=”_blank”」をつけるなら「rel=”noopener”」を挿入するようにしましょう

以上です。