SQLインジェクション

入力値を通じて不正なSQLを実行され、データの漏えい・改ざんにつながる脆弱性。

作成日: 2026-07-19 / 更新日: 2026-07-19

キーワード: SQL injection / SQLi / prepared statement / bind parameter / database

概要

SQLインジェクションは、入力値を通じて不正なSQLを実行され、データの漏えい、改ざん、削除につながる脆弱性です。

ログインフォーム、検索フォーム、ID指定の詳細画面など、入力値を使ってSQLを組み立てる場所で問題になりやすいです。

何が起きるか

文字列連結でSQLを作ると、入力値の中にSQLの一部として解釈される文字列を混ぜ込まれる可能性があります。

その結果、想定していない条件でデータを取得されたり、更新されたりする危険があります。

実装で見る観点

対策の方向性

基本は、プリペアドステートメントやバインド変数を使い、入力値をSQL構文として解釈させないことです。

また、入力値検証、最小権限、エラーメッセージの扱いも合わせて確認します。

関連する概念

更新履歴

  • 初版作成

関連項目