看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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