作者Pecker ()
看板Visual_Basic
標題Re: VB.NET
時間Thu Oct 28 12:49:28 2004
: : 會出現 SQL Injection 的問題
: 原作者私下發信問我什麼是SQL Injection
: 我想,我還是在這裡寫出來好了
: 以上面的程式碼來說
: 如果我在 TextBox1 當中輸入 ' or 'x' = 'x
: 而我在 TextBox2 當中, 也輸入 ' or 'x' = 'x
: 整行 SQL command 就會變成
: Select 帳號 from form3 where 帳號 = '' or'x' = 'x' and 密碼
: = '' or 'x' = 'x'
: 然後運算之後就會造成 Where 後面永遠是 True
: 所以 我就不需知道帳號密碼就可以輕鬆登入
: 更可怕的是當你下了 dr.read() <== 用 DataReader 的指令之後
: 所讀到的會是第一個使用者, 通常不都是 admin 嗎?
: 所以這個登入者可以輕鬆取得所有權限...
: 很可怕吧...
: 所以大家請小心
同一篇文章自回第三次.....
要防範 SQL Injection 的話, 最重要的就是不要用組合的方法產生
SQL Command
要善用 .NET 當中 OleDBCommand 當中的 Parameter 屬性
詳細內容,請到
http://www.microsoft.com/taiwan/msdn 去搜尋
SQL Injection
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.8.226