การใช้ OleDbCommand ป้องกันการทำ SQL Injection

บทความนี้ ผมจะแนะนำการใช้งาน OleDbCommand เพื่อ ป้องกันการทำ SQL Injection นะครับ
การทำ SQL Injection เช่น
dim s = " select * from tablename where column = '"& input &"' "
หากเราใส่ค่า input = " 1' or '1' = '1 " การนำ string มาต่อกันก็จะได้
select * from tablename where column ='1' or '1' = '1' ทำให้ query นี้เงื่อนไขเป็นจริง ทุกกรณี

ในกรณีนี้ผมใช้ OleDbCommand ในการทำงาน เพื่อแก้ปัญหา SQL Injection
ตัวอย่าง


Dim Connddthq As New OleDbConnection(ddthqcon)
Connddthq.Open()
str = " Select * from LOGIN_USER where USERNAME = ? and PASSWORD = ? and ACTIVE='Y' "
Dim Cmd As OleDbCommand = New OleDbCommand(str, Connddthq)

With Cmd
.Parameters.Add("", OleDbType.VarChar).Value = Trim(user)
.Parameters.Add("", OleDbType.VarChar).Value = Trim(pass)
End With

Dim da As New OleDbDataAdapter(Cmd)
da.Fill(Dt)
Connddthq.Close()

ไม่มีความคิดเห็น: