「SQLインジェクションって何?」
応用情報技術者試験でもセキュリティ分野で超頻出ですが、
- SQLが攻撃される?
- なぜ危険?
- どう防ぐ?
- Webアプリと関係ある?
で混乱する人がかなり多いテーマです。
この記事では、
- SQLインジェクションとは?
- 攻撃の仕組み
- 被害
- 対策
- 試験での頻出ポイント
を5分で理解できるように解説します!
まず結論
SQLインジェクションとは?
「不正なSQLを入力してDBを操作する攻撃」
です!
超簡単にいうと
「入力欄からDBへ侵入する攻撃」
なぜ危険?
データベースには:
- パスワード
- 個人情報
- 売上情報
など重要情報がある。
攻撃されると?
- 情報漏えい
- 改ざん
- 削除
が発生する!
イメージ
かなり重要👇
普通のログイン
SELECT * FROM users
WHERE id=’taro’
AND password=’1234′;
でも攻撃者が
‘ OR ‘1’=’1
を入力すると…
SQLが変化
WHERE id=”
OR ‘1’=’1′
結果
条件が常に真
不正ログイン成功!
なぜ起こる?
超重要!
原因
入力値をそのままSQLへ結合
するから。
イメージ
入力値
↓
SQL文字列へ直接連結
↓
攻撃成立
被害例
| 被害 | 内容 |
|---|---|
| 情報漏えい | 顧客情報流出 |
| データ改ざん | 内容変更 |
| データ削除 | DB破壊 |
DROP TABLE
超有名!
例
DROP TABLE users;
意味
表削除
対策
超頻出!
最重要
プレースホルダ
プレースホルダとは?
SQL構文と:
入力値を分離
する仕組み。
イメージ
WHERE id = ?
なぜ安全?
入力値を:
単なるデータ扱い
するから!
エスケープ処理
発展知識!
意味
特殊文字を:
無害化
する。
WAFとの関係
超頻出!
WAFとは?
Webアプリ防御装置
SQLインジェクション検知・遮断できる。
SQLインジェクションが起こる場所
| 場所 | 例 |
|---|---|
| ログイン画面 | ID/PW |
| 検索フォーム | 商品検索 |
| 問い合わせ | 入力欄 |
クロスサイトスクリプティング(XSS)との違い
超重要!
| 攻撃 | 対象 |
|---|---|
| SQLインジェクション | DB |
| XSS | ブラウザ |
なぜ「インジェクション」?
SQLを注入する
から!
応用情報で超頻出
かなり狙われる👇
- SQLインジェクション
- プレースホルダ
- WAF
- DB改ざん
- 情報漏えい
よくあるひっかけ
「SQLインジェクションは暗号攻撃」
→ 違う!
これは:
不正SQL注入攻撃
1分で復習!
SQLインジェクション
不正SQL注入
原因
入力値直接連結
被害
- 情報漏えい
- 改ざん
- 削除
対策
プレースホルダ
練習問題
問題
SQLインジェクション対策として最も適切なものはどれか。
ア
プレースホルダを利用する
イ
CPU性能を向上する
ウ
主記憶容量を増やす
エ
通信速度を高速化する
解答
正解:ア
解説
プレースホルダを利用することで、入力値をSQL構文とは別データとして扱い、SQLインジェクションを防止できます。
まとめ
SQLインジェクションとは
「不正SQL注入攻撃」
超重要
- プレースホルダ
- WAF
- 情報漏えい
- DB改ざん
まずは、
「入力欄からSQLを壊される」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント