記事個別表示 (4885)
これは「最近の改竄事件でMicrosoft SQL Serverが狙われる理由 | 水無月ばけらのえび日記」に関連するコメントです。
[4885] Re: 「最近の改竄事件でMicrosoft SQL Serverが狙われる理由」
りゅう (2008年5月15日 23時36分)
SQLは手続き型言語ではないので、大抵のDBMSではストアドプロシージャを定義するための手続き型言語が別途用意されています。それがPL/SQLやPL/pgSQLなどです。それらはストアドプロシージャを定義するためのものなので、ストアドプロシージャの定義以外の部分では使用できません。問い合わせに使用しているのはあくまでもSQLであって、PL/SQLやPL/pgSQLなどの手続き型言語ではないのです。
Transact-SQLではその2つを区別していないというか、問い合わせもストアドプロシージャの定義も、同じTransact-SQLを使って行います。したがって、ストアドプロシージャとして定義する必要があるような手続き的な処理も、単なる問い合わせとして実行できます。
Transact-SQLのインジェクションはもはや任意のプログラムのインジェクションに近いものであり、普通のSQLインジェクションとは異なるものと思った方が良いのかもしれません。
ちなみに複文をMUST要件としているのはUPDATE文のインジェクションの要件としてということになると思いますが(テーブル構造の取得ではMUSTではないので)、複文を使えないシステムでは情報更新系のインジェクションはできないということになるのでしょうか。
これは「水無月ばけらのえび日記 : 最近の改竄事件でMicrosoft SQL Serverが狙われる理由」に関連するコメントです。
全読: [4880]Re: 「最近の改竄事件でMicrosoft SQL Serverが狙われる理由」からのスレッド(6件)]