意図されたSQL: SELECT * FROM users WHERE id = 'user_input' AND pass = 'password';
悪用されたSQL: SELECT * FROM users WHERE id = '' OR '1'='1' AND pass = 'password';
('1'='1' は常に正しいため、IDとパスワードのチェックが無効化されてしまう)SQLインジェクション(SQL Injection)は、Webアプリケーションとデータベース管理システム(DBMS)の隙間を突く、代表的かつ強力なサイバー攻撃手法です。データベースと通信する多くのWebシステムは、ユーザーがフォームに入力した値(例えば顧客IDや商品カテゴリー名など)を動的にSQL文に組み込んで実行します。しかし、プログラムがその入力値の形式を制限しなかったり、文字列のエスケープ(無害化)を怠ったりしていると、入力値そのものが「SQL文の構造」を勝手に書き換えてしまいます。