Firefoxのセキュリティ:target = _blankのrel = noopener

Mozillaは現在、Firefox Nightlyで、target = "_ blank"を使用するリンクにrel = "noopener"を自動的に追加する新しいセキュリティ機能をテストしています。

Target = "_ blank"は、ブラウザにWebブラウザの新しいタブでリンクターゲットを自動的に開くよう指示します。 ターゲット属性がない場合、ユーザーが組み込みのブラウザー機能を使用しない限り(たとえば、CtrlまたはShiftを押したまま別の方法でリンクを開く場合)、リンクは同じタブで開きます。

Rel = "noopenerは、すべての主要なWebブラウザーでサポートされています。この属性により、最近のブラウザーではwindow-openerがnullになります。nullは、値が含まれないことを意味します。

rel = "noopener"が指定されていない場合、リソースが異なるオリジンにある場合でも、リンクされたリソースは元のウィンドウオブジェクトを完全に制御できます。 宛先リンクは、発信元のドキュメントを操作できます。たとえば、フィッシングに似たものに置き換えたり、広告を表示したり、考えられる他の方法で操作したりできます。

rel = "noopener"の悪用に関するデモページはこちらで確認できます。 これは無害ですが、属性が使用されない場合に宛先サイトが発信元サイトを変更する方法を強調しています。

Rel = "noopener"は、元のドキュメントを保護します。 ウェブマスターは、target = "_ blank"を使用するときはいつでもrel = "noopener"を指定することができますし、すべきです。 このサイトのすべての外部リンクでこの属性を既に使用しています。

Appleは10月にSafariに変更を実装し、rel = noopenerをtarget = _blankを使用するリンクに自動的に適用します。

FirefoxのNightlyバージョンは、現在セキュリティ機能もサポートしています。 Mozillaは、変更がインターネット上の主要なものを壊さないようにデータを収集したいと考えています。

設定dom.targetBlankNoOpener.enableは機能を制御します。 これはFirefox 65でのみ利用可能で、デフォルトでtrueに設定されます(つまり、rel = "_ noopener"が追加されます)。

Firefoxユーザーは、設定を変更して機能をオフにすることができます。 セキュリティへの影響があるためお勧めしませんが、互換性の問題が発生した場合はお勧めします。

  1. ブラウザのアドレスバーにabout:config?filter = dom.targetBlankNoOpener.enableをロードします。
  2. 警告プロンプトが表示されたら注意することを確認してください。
  3. 設定をダブルクリックします。

trueの値は、rel = "noopener"がtarget = "_ blank"のリンクに追加されることを意味し、falseの値はそうではありません。

Mozillaは、安定版リリースのFirefox 65を対象としています。 報告または通知される可能性のある問題によっては、物事が遅れる場合があります。 Firefox 65は2019年1月29日にリリースされます(SörenHentzschel経由)