SQLインジェクション(SQL injection)とは、データベースへの問い合わせや操作を行うプログラムにパラメータとしてSQL文の断片を与えることにより、データベースを改ざんしたり不正に情報を入手する攻撃といいます。多くのWebアプリケーションではデータベースの操作にSQLという言語を利用しており、ユーザがフォームから送信した検索語などのパラメータを受け取り、これをSQL文に埋め込んでデータベースへの問い合わせや操作を行います。このとき、SQL文の断片として解釈できる文字列をパラメータに含めることで、プログラムが想定していないSQL文を合成し、不正にデータベースの内容を削除したり、本来アクセスできない情報を表示させたりすることができます。「インジェクション」(injection)とは「注入」という意味です。対策としてはプログラム内で、パラメートのチェックが必要になります。
|