過去問では、SQLインジェクションに関して、以下のように述べられている。
「Webアプリケーションに悪意ある入力データを与えてデータベースの問合せや操作を行う命令文を組み立てて、データを改ざんしたり不正に情報取得したりする攻撃」(H22AP秋 午前問43)より

SQLインジェクションは、SQL文を操作する文字列をWebフォームなどに注入(Injection)し、データベースに不正にアクセスする攻撃。
例えば、以下のようなフォームがある。
login画面_情報セキュリティスペシャリスト試験

サーバの認証プログラムとして、以下のSQL文が入っているとします。

 SELECT * FROM USER WHERE UserName = '(フォームのユーザ名が入る)'

ここで、フォームに a' or '1'='1 と入力すると
 SELECT * FROM USER WHERE UserName = 'a' or '1'='1'
となり、どんなユーザを入れても成立してしまう。または、コメントを意味する「--」を付ければ、それ以降が無視される。

コマンドを成功させるだけでなく、SQLのUNION句を使って別のSQL文をくっつければ、DBの中身を表示することも可能だ。

対策に関しては、IPAのサイトから以下が公開されています。
http://www.ipa.go.jp/security/vuln/documents/200811_JOGA.pdf
http://www.ipa.go.jp/security/vuln/vuln_contents/sql.html