8 ポイント 投稿者 xguru 2020-11-16 | 3件のコメント | WhatsAppで共有
  • target="_blank" で新しいウィンドウを開いたとき、元のページにアクセス可能になるセキュリティ問題を回避するため、強制的に rel="noopener" が適用されたかのように動作するよう変更

  • Safari はすでに2018年に適用済み

  • MS Edge の開発者がこの機能を Chromium に追加し、Edge/Chrome/Brave などすべてのブラウザーに適用されるようになった

  • Chrome Canary には追加済みで、2021年1月に公開予定の Chrome 88 で正式配布予定

3件のコメント

 
sduck4 2020-11-16

従来どおり新しいウィンドウから親ウィンドウにアクセスするには、aタグに rel="opener" 属性を追加する必要があるようですね。

メンテナンスされていないサイトでは、その機能を使うと少し問題になりそうですね。

 
dua804 2020-11-17

個人的には、親ウィンドウと子ウィンドウの連携のために、私は以下のようにポップアップを開いています。

var childWin = window.open("", "childWin");

childWin.location.href = "https://news.hada.io";;

こうすると、親ウィンドウ、子ウィンドウの両方でページが変わっても、お互いを制御できるんです。

プレーヤーをポップアップで表示するときは、このように使ったりします。

 
xguru 2020-11-16

この問題は、新しいウィンドウを開いたとき、その新しい URL の JavaScript が悪意を持っていると、元のページを別の場所(フィッシングサイトなど)へ飛ばしてしまえるというものです。

ユーザーが本文やコメントなどで URL を登録できるサイトで発生する可能性があります。

これを防ぐには、今からでも target を使う際に rel="noopener" を追加しておくのがよいです。

  • GeekNews は新しいウィンドウを開く機能自体がないため、適用していません。 ^^;