rel="noopener noreferrer"をどうするか
<a target="_blank">
にrel="noopener noreferrer"
がついてないというのをレビューで見つけたのでコメントで話していたら、一部ブラウザは書かなくてもnoopener
の対応がされていたりするので書かなくていいかも?というのを聞いた。
のでちょっと調べてみた。
まず、noopener
とnoreferrer
のどっちつける?それとも両方つける?両方つけない?というのを調べた。
noopener と noreferrer の整理、結局どっちを使えば良いのか
これを見ると、ほぼnoreferrer
だけでよさそう。
リンクをブラウザ機能で開いた場合 window.opener は null になる - Qiita
リンクを作る時の target="_blank" の危険性 - 隙あらば寝る
HTML 本当は怖い target="_blank" 。rel="noopener" ってなに? - かもメモ
新規タブリンクの恐ろしい仕様、Chrome 88 で変更へ ~ Safari/Firefox に合わせた安全な仕様に - やじうまの杜 - 窓の杜
いくつか(多少古いとはいえ)記事を読んだら、現状は両方つけるのがよさそうという結論。
noopener
は、新しめなブラウザでは標準となっているが、新しいブラウザを使っていないユーザーの想定をしたら欲しい。
noreferrer
は、IE 利用者を考えると必須。
"rel=noopener" | Can I use... Support tables for HTML5, CSS3, etc
"rel=noreferrer" | Can I use... Support tables for HTML5, CSS3, etc
というわけで、結果としてrel="noopener noreferrer"
の両方をつけるというのに落ち着いた。
noopener と noreferrer の整理、結局どっちを使えば良いのか
先程挙げたこの記事でも、デメリットは微々たるバンドルサイズの増加くらいしかないのでつけたほうがよさそう。
あと IE は 11 で Win10 の later version だけnoreferrer
が効くということで、救えない部分が大半なのが悲しすぎる。