Programing:SQLインジェクションってなに?

posted on 2005年7月7日 10:02 投稿者 Elfaria

社内で結構質問されたので(^^;

SQL文にコントロールのプロパティとかをそのまま連結させると、どえらいことになりますよ。

要は、レコード一つだけ抽出するクエリで、
SQL = "SELECT [氏名] FROM HogeHoge WHERE ID= '" & TextBox1.Text & "'"

ってなことやっちゃうと、どうなるかわかりますよね?
TextBox1.Textが、「100」などという想定内の入力だったらいいんですけども、
もし、”100' OR 10='10” っていう入力があったらどうなるでしょう?

想像通り、全部のレコードが返されます。(10=10 がTrueになるので)

テーブルが顧客台帳だったりするともう大変です。最悪の事態です。流出したら大変。

これが、SQLインジェクションといわれる手口の手法です。

Webアプリなんかは、特に注意しないといけないですね。

対処法は、きちんとした入力チェックをする、などですね。いろいろ考えられますけども。

一人500円では済まされないですよ。

コメント