SQLインジェクション
SQLインジェクションとは、正規のWebページのFORM(入力場所)に、想定しないSQL文を入力して実行されることにより、データベースシステムを不正に操作する手口です。
例えば電子商取引のページでは、利用者に商品名や検索条件などを入力させて、次に表示するページを生成しています。それを行うには、背後にデータベースを用いたシステムがあります。SQLとは、データベースを操作する言語です。
商品名や検索条件を入力すべきところ、SQL文を入力することにより、本来のシステムが想定していない処理を行わせることができます。それにより、
・データベースの内容を取り出す(顧客情報など)
・データベースの内容を改ざんする(価格表など)
・Webページ自体を改ざんする
などの不正行為を行います。
この不正入力を悪意のある者が自分で直接行うこともありますが、クロスサイト・スクリプティングなどの手口を用いて、善意の第三者に代行させることが多いのです。
入力文字列をチェックして拒否したり無害な文字列に置き換えたりすることをサニタイジング(Sanitizing)といいます。ここでは、SQLインジェクション対策としたサニタイジングの代表的なものを掲げます。