PC マニアックス ―

target="_blank"はサイトをハイジャックされるリスクがある

kotaro -










target="_blank" のリスクとは何なのか


target="_blank" とは
HTMLで使用する構文です。”target”属性は、リンクしたサイトがクリックされたとき、どういう方法で開かれるのかを指定出来ます。例えば"_blank"を指定すると、新規ウインドウが立ち上がり、そこにリンクしているサイトが表示されます。自分のサイトの状態を維持しつつ、他のサイトを閲覧することが出来ます。利便性が高く、サイトを訪問している人を逃さないメリットがあります。ただし、悪意のあるサイトをリンクしてしまった場合、有料サイトなどに転送されてしまうリスクもあります。




HTMLを日々作られている方であれば、target="_blank"を使う機会が多いと思います。実はこの構文だけを使っていると、サイトをハイジャックされることがあります。わたしも実際に被害にあったことがあります。自分の作ったサイトの海外ページへのリンクが切れていることに気づき、確認のためリンクをクリックした後、元のサイトに戻ろうとしたら、なんと有料サイトに変わっていました。

これは、HTMLインジェクションという攻撃手法で、自分のサイトページが書き換えられてしまうことによって起こります。戻るボタンを押しても変わらず、元のサイトが完全に閲覧できなくなります。知らないうちに、自分のサイトページが有料・フィッシングサイトに遷移させていることがあるのです。



HTMLインジェクションの仕組み





window.opener のセキュリティ問題


悪意のあるリンク先のページは、”window.opener”というJavaScriptのコンテンツを利用することで、元のページの内容を取得・書き換え・強制転送が出来てしまいます。代表的なものは、”location="blood.html"などと記述して、悪意のあるサイトへ転送します。



pexels.com

対策方法


”windows.opener”を実行できないようにすれば、ハイジャックを防ぐことが出来ます。

aタグに、rel="noopener noreferrer"を追加で記述してください。リンク元の情報はリンク先へ開示されなくなります。書き換えができないので、自分のサイトは確実に維持されます。