用語「SQLインジェクション」について
SQLインジェクション (えすきゅーえるいんじぇくしょん)
話題 : セキュリティ
「ダイレクトSQLコマンドインジェクション」とも。"injection" は「注入」というような意味で、SQL データベースに対し、外部から任意のコマンドを与えることができる状態を指します。
主に、任意のデータを抽出できてしまう事が問題となります。たとえば、あるユーザが他のユーザのデータを見たり、パスワード情報を得たりできてしまう可能性があります。また、SQL の種類や設定によってはデータベースの改竄や削除ができてしまったり、さらにはサーバ内で任意のコマンドを実行する事ができてしまったりすることもあって、洒落になりません。
※ここで言う「サーバ内で任意のコマンドを実行」というのは SQL のコマンドではなくて、echo や copy などのシェルコマンドのことを言っています (OSコマンドインジェクション)。Jet で VBA のマクロが実行できる環境では、"|shell(……)" などという文字列で任意のコマンドが実行できることがあります。
このセキュリティホールの原因はクロスサイトスクリプティング脆弱性と同様、外部からの入力に対するサニタイズを怠っていることです。
- 「SQLインジェクション」へのコメント (9件)