説明
新しく開いたページが window.opener にアクセスできると、元のタブをフィッシングページへ移動させる可能性があります。現在の HTML 標準と対応ブラウザーでは、target="_blank" に既定で noopener の動作が適用されます。そのため保護属性の省略だけで脆弱とは断定できませんが、古い環境や opener を明示的に許可する設定の確認が必要です。
想定される影響
- 元のタブをフィッシングページへ置き換え、認証情報や機密情報を盗まれるおそれがあります。
- 以前から信頼していたタブ内に表示されるため、攻撃ページを正規のページと誤認する可能性があります。
対処方法
- 外部リンクを新しいタブで開く場合は
rel="noopener"を明示してください。rel="noreferrer"は同じ opener 保護に加えて Referer の送信も止めるため、必要に応じて追加してください。 - 可能なら、フレームワークやコンポーネントで共通の外部リンク方針を適用してください。
例
変更前
html
<a href="https://example.org" target="_blank">외부 링크</a>
変更後
html
<a href="https://example.org" target="_blank" rel="noopener noreferrer">외부 링크</a>
説明:
- 変更前: 保護属性を明示していません。現在の既定の保護が適用されず
window.openerが残る環境では、元のタブを移動させられるおそれがあります。 - 変更後:
target="_blank"のリンクにrel="noopener noreferrer"を明示し、opener の接続と Referer の送信を防ぎます。