← 一覧に戻る AI · Visual Glossary
91 · H. セキュリティ
SQL Injection

SQLインジェクション

DBに悪意のクエリを混入させる

ログインフォーム (user id)
admin' OR 1=1 --
SELECT * FROM users
WHERE id = 'admin' OR 1=1 --'
⚠ 全件取得
users全レコード流出

SQLインジェクションってそもそも何?

データベースへの問い合わせ文に、悪意のコマンドを混入させる攻撃です。例えばログインフォームに' OR 1=1 --と入力すると、SQL文が「条件が常に真」になってパスワードなしで全ユーザー情報が抜けることがある。大規模流出事件の原因として今もトップクラスの攻撃。

身近な例えで理解する

例① 「全部ちょうだい」と言わせる魔法の呪文

本来「IDがこれの人だけ」という絞り込みが、「ID何でもOK」に書き換わる。DBに直接話しかける言語(SQL)を、ユーザー入力で操れてしまうのが原因。

例② ファミレスの注文用紙

注文欄に「厨房に入らせて」と書いても、店員は「料理名が書いてある欄」しか見ないから指示として通らない。入力欄をきっちり分けておけば、変な命令を書いても無視される、という発想です。

📝
まとめ

SQLインジェクションは、DBへの問い合わせ文を乗っ取る古典攻撃。AIにDB周りを書かせる時は「プレースホルダ使って」と必ず添える。

More · Next Step

AI活用の実例・失敗談を、シェアしているオープンチャットがあります。単語を覚えたあと、実際の使い方に触れたい方へ。