HTML]aタグのtarget="blank"属性セキュリティホール


HTML開発で<a>タグを使用する場合、通常はtarget属性が多く入れられます.
私のVerlogもすべての外部リンクtarget="_blank"を設定しました_blankを使用すると、現在のページから突然移動するよりも、新しいタブでページを開く方が可用性が高いためです.
ただし、学習中にこれらのプロパティにセキュリティ・ホールがあることがわかり、検索した内容をメモします.

🔑 MDNドキュメントにおけるターゲットの注意点


最も基本的なMDNドキュメントも以下のように書かれています.
  • 2window.opener APIの悪用を防止することを考慮してください.

  • 🔑 rel="noopener" , rel="noreferrer"


    ウェブサイトから接続されたページは、接続ページに部分的にアクセスできます.
    つまり、window.opener個の対象が存在し、この言葉の意味は
    「接続」ページで前のページを制御する権限があることを示します.
    株式や硬貨などの資産の取引所や登録が必要なページでは、最悪の場合、悪意のあるURLでアクセスできます.
    したがって、ラベルにrel="noopener"のプロパティを指定することで、次のように機能とセキュリティを同時に取得できます.
    <a href="https://velog.io/@mangozoo20" target="_blank" rel="noopener">
      Example velog.io/@mangozoo20
    </a>

    🔑 window.opener

    Windowインタフェースのプロパティで、移動したページから前のページの参照にアクセスできます.
    簡単に言えば、이전 <-- 이후は近づくことができます.
    ページは移動しましたが、データは参照でアクセスできます.
    確かに悪意のある攻撃ができる良い通路です.
    私の実力がまだ足りないので、こんな攻撃があるとは思わなかった.彼を捕まえるな.

    機会があれば、window.openerがどのような攻撃を受けるかをもう一度見るべきだ.

    🔑 ヘルプ記事


    [HTML]rel=noopener norefererを使用して新しいウィンドウを開き、セキュリティ・ホールを補う:tistoryzineeworld
    MDN Web Docs - a:MDN文書aラベル
    MDN Web Docs - window.opener:MDN公式文書window.openerクロスソースターゲットへのリンクは安全ではありません : web.devサイトコラム
    [SEO]target=「blank」、詳細:T-Story