正式名称:SQL Injection
読み:エスキューエル インジェクション
データベースと連動したWebサイトで、データベースへの問い合わせや操作を行なうプログラムにパラメータとしてSQL文の断片を与えることにより、データベースを改ざんしたり不正に情報を入手する攻撃。
また、そのような攻撃を許してしまうプログラムの脆弱性のこと。
多くのWebアプリケーションではデータベースの操作にSQLという言語を利用しており、ユーザがフォームから送信した検索語などのパラメータを受け取り、これをSQL文に埋め込んでデータベースへの問い合わせや操作を行なう。
このとき、SQL文の断片として解釈できる文字列をパラメータに含めることで、プログラムが想定していないSQL文を合成し、不正にデータベースの内容を削除したり、本来アクセスできない情報を表示させたりすることができてしまう場合がある。
このような攻撃手法をSQLインジェクションという。
「インジェクション」(injection)とは「注入」という意味。
SQLインジェクションはパラメータをSQL文に埋め込む際にきちんとチェックが行なわれていないために起こる。
パラメータ中にSQL構文やSQL文で特殊な意味を持つ文字が含まれていないか調べ、含まれていた場合はこれを削除したり別の文字列に変換(エスケープ)するといった処理を組み込む必要がある。
|
|