---
title: "WAFとは？SQLインジェクションを遮断するWebアプリ防御【基本情報技術者試験】"
description: "WAFを「Webアプリケーションへの通信内容を検査し、SQLインジェクションやXSSなどを遮断する仕組み」として整理し、FE試験でSSL-VPN、クラスタ構成、ロードバランシングとの違いを切り分ける判断軸を解説します。"
last_modified_at: "2026-07-09"
canonical_url: "https://stemtazoo.github.io/fe/waf/"
section: "fe"
---

## まず結論

WAFとは、**Webアプリケーションへの通信内容を検査し、SQLインジェクションやXSSなどの攻撃を遮断する仕組み**です。

WAFは Web Application Firewall の略です。

基本情報技術者試験では、WAFは **クライアントとWebサーバの間で、Webアプリに送られるデータを検査する防御策** と押さえると分かりやすいです。

問題文に **Webサーバに送信されたデータを検査**、**SQLインジェクションを遮断**、**Webアプリケーションを防御** といった表現が出たら、WAFを疑います。

## 直感的な説明

WAFは、Webアプリケーションの入口に立つ警備員のようなものです。

利用者からWebサーバへ送られるリクエストの中身を見て、危ない入力がないかを確認します。

```text
クライアント
↓ HTTPリクエスト
WAF
↓ 安全なら通す
Webサーバ
```

例えば、ログインフォームや検索フォームに、攻撃用の文字列が送られることがあります。

```text
' OR '1'='1
<script>...</script>
```

WAFは、このようなWebアプリ向けの攻撃らしい入力を検査し、必要に応じて遮断します。

## 定義・仕組み

WAFは、Webアプリケーションを保護するためのファイアウォールです。

通常のファイアウォールが主にIPアドレスやポート番号を見て通信を制御するのに対し、WAFはWebアプリケーションに送られる通信内容を詳しく見ます。

| 仕組み | 主に見るもの |
|---|---|
| 通常のファイアウォール | IPアドレス、ポート番号、通信方向など |
| WAF | HTTPリクエスト、パラメータ、入力値、URLなど |

WAFで防ぎやすい代表例は次のとおりです。

| 攻撃 | ざっくり意味 |
|---|---|
| SQLインジェクション | 入力値にSQL文を混ぜて、DBを不正操作する攻撃 |
| XSS | Webページに悪意あるスクリプトを混入させる攻撃 |
| パストラバーサル | 想定外のファイルへアクセスしようとする攻撃 |
| 不正なリクエスト | 通常想定しない形式のHTTPリクエスト |

このテーマは、基本情報技術者試験の「情報セキュリティ」や「Webアプリケーションの防御」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、WAFの役割を選ぶ問題や、SSL-VPN、クラスタ構成、ロードバランシングとの違いを問う問題が出やすいです。

判断するときは、次のキーワードを見ます。

```text
Webアプリケーション
HTTPリクエスト
入力値の検査
SQLインジェクション
XSS
```

選択肢では、次のように切り分けます。

| 選択肢の表現 | 疑う用語 |
|---|---|
| Webサーバへ送信されたデータを検査し、SQLインジェクションなどを遮断 | WAF |
| TLSを使ってブラウザ経由でVPN接続する | SSL-VPN |
| 複数台のコンピュータを結合して性能や可用性を高める | クラスタ構成 |
| 複数サーバへ処理を分散する | ロードバランシング |

FE試験では、**Webアプリへの攻撃を通信内容から検査する** と読めたらWAFです。

## 科目Bでどう使う？

科目Bでは、Webシステムの構成図やセキュリティ対策を読むときに役立ちます。

例えば、次のような構成です。

```text
インターネット
↓
WAF
↓
Webサーバ
↓
DBサーバ
```

この構成では、WAFがWebサーバへ届く前のリクエストを検査します。

SQLインジェクションのような攻撃は、入力値を通じてWebアプリやDBを狙います。

そのため、科目Bで読むときは、次のように整理するとよいです。

```text
1. 守りたい対象はWebアプリか
2. 攻撃はSQLインジェクションやXSSか
3. HTTPリクエストの中身を検査しているか
```

この3つがそろえば、WAFの可能性が高いです。

SG試験向けの記事では、運用面や誤検知、ルール設定の考え方も整理しています。あわせて確認するなら、[WAFとは？Webアプリケーションを守る防御策【SG試験】](https://stemtazoo.github.io/sg/waf/) も参考になります。

## よくある誤解・混同

WAFでよくある誤解は、**Webに関係する仕組みなら何でもWAFだと思ってしまうこと**です。

| 誤解 | 正しい理解 |
|---|---|
| WAFはVPN接続の仕組み | VPN接続ならSSL-VPNなど |
| WAFは負荷分散の仕組み | 負荷分散ならロードバランシング |
| WAFは可用性を高める複数台構成 | 可用性や性能ならクラスタ構成 |
| WAFはすべての攻撃を防ぐ | 主にWebアプリへの攻撃を検査・遮断する |
| 通常のファイアウォールと同じ | WAFはHTTPリクエストや入力値など、Webアプリ層を詳しく見る |

特に、通常のファイアウォールとの違いは試験で迷いやすいです。

```text
通常のファイアウォール
→ IPアドレスやポート番号を見て通信を制御する

WAF
→ Webアプリに送られるデータの中身を見て攻撃を検査する
```

また、ロードバランシングとの違いも押さえておくと安心です。

```text
ロードバランシング
→ 処理を複数サーバへ分散する

WAF
→ Webアプリへの攻撃を検査・遮断する
```

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

- WAFは、Webアプリケーションへの通信内容を検査する防御策
- SQLインジェクションやXSSなどのWebアプリ攻撃を遮断しやすい
- 通常のファイアウォールはIPアドレスやポート番号を見る
- SSL-VPNは安全なリモート接続、ロードバランシングは負荷分散
- 判断ポイントは「Webアプリ」「HTTPリクエスト」「SQLインジェクション」
