0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【フロントエンド1000本ノック】0012_外部サイトへのリンクと内部ページへのリンクを作成し、target="_blank"とrel="noopener noreferrer"の役割を説明せよ。

Posted at

はじめに

こんにちは、赤神です!
この記事は、「1000本ノック」という取り組みの中のフロントエンドのための課題の1つです。

「1000本ノックとは」
https://qiita.com/sora_akagami/items/c8da4296dea3823376ca

target="_blank":新しいタブで開く

リンクを新しいタブで開くように指示するのが blank="_blank" 属性です。target は「目標」、_blank は「空白の場所」を意味する単語ですので、「何もない新しい場所(タブ)で開いて」という指示になります。

主に外部サイトへのリンクで使い、自分のサイトからユーザーが離脱してしまうのを防ぐために使われます。

<a href="https://www.google.com" target="_blank">Google</a>

rel="noopener noreferrer":セキュリティのためのおまじない

target="_blank" を使うときには、セキュリティ上の理由から必ずセットで付けるべきおまじないのようなものがあります。それが rel="noopener noreferrer" です。

これは、2つのパーツに分かれています。

  • noopener
    • 役割:セキュリティの強化
    • 説明:target="_blank" で開かれた先のページは、元のページを JavaScript で部分的に操作できてしまうという脆弱性があります。悪意のあるサイトにリンクした場合、元のページを偽サイトに書き換えられる危険性もゼロではありません。noopenerは、この関係性を断ち切り、安全性を高めます。
  • noreferrer
    • 役割:プライバシーの保護
    • 説明:リンクをクリックすると、リンク先のサイトに「どのページから来たか」という情報(リファラ)が送られます。noreferrerは、この情報を送らないようにする設定です。

作成したコード

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>フロントエンド1000本ノック 0012</title>
</head>
<body>
    <main>
      <h1>内部サイトへのリンクと外部サイトへのリンク</h1>
      <h2>内部サイトへのリンク</h2>
      <a href="/about.html">会社概要へ</a>

      <h2>外部サイトへのリンク</h2>
      <a href="https://www.google.com" target="_blank" rel="noopener noreferrer">Googleへ</a>
    </main>
    <footer>
      <p>Copyright 2025</p>
      <p>フロントエンド1000本ノック</p>
    </footer>
</body>
</html>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?