---
title: "メールヘッダーインジェクションとは？改行を悪用する攻撃【SG試験】"
description: "メールヘッダーインジェクションは、入力値に改行コードなどを混入させ、メールのヘッダーを不正に追加・改ざんする攻撃です。問い合わせフォーム悪用、迷惑メール送信、入力値検証やエスケープの必要性をSG試験向けに整理します。SG試験の出題文で迷いやすい判断ポイントも確認します。"
last_modified_at: "2026-05-27"
canonical_url: "https://stemtazoo.github.io/sg/mail-header-injection/"
section: "sg"
---

## まず結論
- メールヘッダーインジェクションとは、入力フォームに改行文字などを埋め込み、メールのヘッダーや本文を不正に改ざんする攻撃です。  
- SG試験では「入力値をそのまま使う設計の弱さ（脆弱性）」を突く攻撃として問われます。

---

## 直感的な説明
お問い合わせフォームに名前やメールアドレスを入力すると、その内容がメールとして送信されますよね。

もしその入力欄に  
「改行＋別の宛先」  
を仕込めたらどうなるでしょうか？

👉 本来送るはずのメールに、勝手に別の宛先や内容が追加されてしまいます。

---

## 定義・仕組み

> 公式: JVN iPedia（脆弱性対策情報）：[公式: JVN iPedia（脆弱性対策情報）](https://jvndb.jvn.jp/)
メールヘッダーインジェクションは、Webフォームなどの入力値に改行コード（CRLF）を含めることで、メールのヘッダー情報を不正に追加・変更する攻撃です。

### 典型的な仕組み
1. 入力フォームに悪意ある文字列を入力  
2. 改行コードを使ってヘッダーを分断  
3. 新しいヘッダー（To、Cc、Bccなど）を追加  
4. 不正なメール送信や情報漏えいが発生  

👉 **「入力値がそのままメールに使われる」ことが原因**

---

## どんな場面で使う？
### よくある対象
- お問い合わせフォーム  
- 会員登録フォーム  
- メール送信機能を持つWebアプリ  

### 業務でのポイント
- 入力値の検証（バリデーション）が重要  
- 改行コードの除去・無効化  
- フレームワークの安全な関数を使う  

👉 **開発・設計ミスを突く攻撃（脆弱性利用）**

---

## よくある誤解・混同
### ❌ フィッシングとの違い
- フィッシング：人をだまして入力させる  
- ヘッダーインジェクション：システムの不備を突く  

👉 **人を狙う vs システムを狙う**

---


### ❌ HTTPヘッダーインジェクション／OSコマンドインジェクションとの混同
- ヘッダーインジェクション（メール/HTTP）：改行（CRLF）でヘッダー項目を差し込む
- OSコマンドインジェクション：`system()` や `exec()` などを悪用してサーバでコマンド実行させる

👉 **「改行でヘッダー改ざん」か「コマンド実行」か** で切り分けます。

---

### ❌ SQLインジェクションとの違い
- SQLインジェクション：データベース操作を改ざん  
- ヘッダーインジェクション：メールの構造を改ざん  

👉 **対象が違う（DBかメールか）**

---

### ❌ 迷いやすいポイント（SG試験）
- 「改行コード」「入力フォーム」「ヘッダー追加」  
→ このキーワードが出たらメールヘッダーインジェクション  

- 「だまして入力させる」ならフィッシング系  

---

## 確認問題（SG試験対策）

次のうち、メールヘッダインジェクションの説明として最も適切なものはどれか。

- ア. 入力値に改行などを混入させ、メールヘッダを不正に追加・改変する攻撃である。
- イ. メール送信時に利用者認証を行う正規の仕組みである。
- ウ. メール本文を暗号化し、電子署名を付ける仕組みである。
- エ. DNSに送信元メールサーバを登録してなりすましを防ぐ仕組みである。

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ア**

### 解説
- ア：ヘッダを不正に差し込むことで、宛先追加などが起こり得ます。
- イ：SMTP-AUTHの説明です。
- ウ：S/MIMEの説明です。
- エ：SPFの説明に近いです。

👉 判断ポイント
メールヘッダインジェクションは「入力値でメールヘッダを壊す・追加する」攻撃。

</details>

---

## まとめ（試験直前用）

- メールヘッダーインジェクション＝改行でメール構造を改ざん  
- 入力値をそのまま使う設計ミスが原因  
- フィッシングは人、インジェクションはシステムを狙う  
- 「改行コード」「ヘッダー追加」が出たら即判断
