【入門編】aタグのrel属性によるセキュリティ対策 – HTML実践ガイド

こんにちは!フロントエンドの世界へようこそ。
Web制作を始めたばかりの頃って、新しいタグを覚えるたびにワクワクしますよね。今日はそんな皆さんに、「リンクを開く」という何気ない操作に隠された、ちょっと怖いけれど大切なセキュリティの知識をお話しします。

「たかがリンク」と侮るなかれ。ここを押さえておくだけで、あなたの作るサイトの信頼性がグッと高まりますよ。

—

リンクを開くときの「小さな落とし穴」

皆さんも、新しいタブでリンクを開きたいときに `target=”_blank”` を使ったことはありますよね?


外部サイトへ移動

これ、実はブラウザの仕組み上、「移動先のページ」に対して「移動元のページ」の情報の一部を渡してしまうという性質があるんです。

例えるなら「合鍵を渡してしまう」ようなもの

イメージしてみてください。あなたが友人に「このドアの向こうを見てきて!」と部屋の鍵を貸したとします。でも、その鍵に「元の部屋の鍵」も一緒についていたら?
もしその友人が悪意を持っていたら、勝手に元の部屋に戻ってきて、中のものを荒らしたり、こっそり覗き見たりできてしまいますよね。

Webの世界でも同じです。`target=”_blank”` だけを指定すると、移動先のページから、あなたのページを操作できる「隙」ができてしまうことがあるんです。これを「window.opener」経由の脆弱性と呼びます。

—

救世主は `rel=”noopener”`

そんな怖い事態を防いでくれるのが、`rel=”noopener”` という属性です。

これをリンクに付け加えるだけで、新しいタブを開いた際に、移動先のページに対して「元のページの情報」を一切渡さなくなります。「用が済んだら鍵は置いていってね!」と制限をかけるようなイメージですね。

実装はとても簡単です

さっそくコードを見てみましょう。今の時代、`target=”_blank”` を書くときは、必ずセットで書くのが「お作法」になっています。



安全な外部リンク

これだけで、セキュリティリスクをピシャリと遮断できるんです。どうですか、意外とシンプルですよね!

—

もう一つの味方:`rel=”noreferrer”` との違い

たまに `rel=”noreferrer”` という記述も見かけませんか?
こちらは「情報を渡さない」ことに加えて、「どこから来たのか(参照元)」という情報すらも相手に教えないようにする、より厳重な守り方です。

  • `rel=”noopener”`: 相手に元のページを操作させない(セキュリティ重視)
  • `rel=”noreferrer”`: セキュリティに加え、「どこからアクセスされたか」という履歴も隠す

基本的には `rel=”noopener”` で十分ですが、よりプライバシーを重視したいときは `rel=”noreferrer”` を使う、と覚えておけばバッチリです。ちなみに、最近のブラウザでは `noopener` を指定すれば `noreferrer` の効果も一部含まれるようになっているので、まずは `rel=”noopener”` を徹底するだけで大きな進歩ですよ。

—

まとめ:今日から「当たり前」にしよう

最後に、今回のポイントをまとめておきますね。

1. `target=”_blank”` を使ったら、必ず `rel=”noopener”` をセットにする
2. これは「元のページを不正操作から守る」ための大切なガード
3. 難しく考えず、「お出かけのときは鍵を預けない」というマナーだと覚えておこう!

Web制作は、こうした小さな気遣いの積み重ねです。最初は覚えることが多くて大変かもしれませんが、こうして一つひとつ「知っていること」を増やしていく過程こそが、スペシャリストへの第一歩です。

皆さんが書くコードで、インターネットが少しずつ安全で心地よい場所になっていく。そう考えると、なんだかワクワクしませんか?

ぜひ明日からのコーディングで、忘れずに試してみてくださいね!応援しています!

コメント

タイトルとURLをコピーしました