Re: VB.NET

看板Visual_Basic作者時間20年前 (2004/10/27 19:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
※ 引述《Pecker ()》之銘言: : : OleDbCommand1.CommandText = "SELECT 帳號 FROM Form3 " & _ : : "WHERE 帳號 = '" & TextBox1.Text & "'" & _ : : " AND 密碼 = '" & TextBox2.Text & "'" : 先不講你的錯誤 : 這樣寫是很危險的 : 會出現 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 嗎? 所以這個登入者可以輕鬆取得所有權限... 很可怕吧... 所以大家請小心 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.219.21.2
文章代碼(AID): #11VuY0Yg (Visual_Basic)
討論串 (同標題文章)
以下文章回應了本文
20年前, 10/28
完整討論串 (本文為第 1 之 2 篇):
20年前, 10/27
20年前, 10/28
文章代碼(AID): #11VuY0Yg (Visual_Basic)