最終更新日:
SQLインジェクションとは、Webアプリケーションの入力欄などに細工した文字列を入れ、データベースを不正に操作する攻撃です。
Webアプリケーションは、利用者の入力をもとにSQLと呼ばれる命令を組み立て、データベースに問い合わせます。入力をそのまま命令の一部としてつなげていると、攻撃者が入力欄に命令の断片を入れ、本来見られない情報を取り出したり、データを書き換えたり消したりできてしまいます。
会員の情報や注文の記録など、データベースにある情報がまとめて漏れるおそれがあり、影響の大きい攻撃です。OWASP Top 10 では「インジェクション」の項目に含まれ、IPAの「安全なウェブサイトの作り方」でも取り上げられています。
基本の対策は、入力を命令と分けて渡す仕組み(プレースホルダ)を使うことです。多くのフレームワークにはこの仕組みが備わっていますが、使い方を誤ると防げません。脆弱性診断で確かめ、WAFを補いとして組み合わせます。
関連する法令・指針(参考情報)
- 指針
独立行政法人情報処理推進機構(IPA)「安全なウェブサイトの作り方」
ウェブサイトの開発者や運営者に向けて、SQLインジェクションやクロスサイト・スクリプティングなど、よく知られた脆弱性とその対策をまとめた資料です。運用の点検項目をまとめた「安全なウェブサイトの運用管理に向けての20ヶ条」も案内しています。
法令は2026年10月21日時点の内容です。要旨は当社がまとめたもので、条文・判決・指針の全文ではありません。個別の事案への当てはめは、弁護士・社会保険労務士などの専門家にご確認ください。表記の決まりは法令・指針の参考情報と凡例をご覧ください。
関連する用語
- SQLリレーショナルデータベースに、データの検索・登録・更新・削除を指示するための言語です。
- OWASP Top 10Webアプリケーションの重大なセキュリティのリスクを、OWASP が10項目にまとめた文書です。
- WAFWebアプリケーションへの通信の中身を調べ、攻撃とみられる要求を止める仕組みです。
- 脆弱性診断システムに脆弱性がないかを、専用の道具や技術者の手で調べることです。