SQL インジェクション
攻撃者がフォームに SQL コードを紛れ込ませ、データベースにそれを実行させる攻撃である。
古典的な例は、SELECT * FROM users WHERE name = '$name' というクエリを組み立てるログインフォームである。名前欄に ' OR 1=1 -- と入力されると、クエリは SELECT * FROM users WHERE name = '' OR 1=1 --' となり、全ユーザーが返される。
対策は常に同じで、プリペアドステートメント(パラメータ化クエリ)を使うことだ。ユーザー入力はデータであってコードではない。現代の言語はほぼすべて標準で対応している。