1. 何謂"SQL Injection (資料隱碼)攻擊": 本文不廢話這邊,網路Google會有一堆,不然就看看這篇 http://www.microsoft.com/taiwan/sql/sql_injection_g1.htm
2. 如何避免使用 SqlCommand.Parameters
代碼:
//建立 SqlConnection 物件
string ConnString = "Provider=SQLOLEDB;Data Source=192.168.xxx.xxx;Initial Catalog=xxxx;User Id=xx;Password=xxxxxx;";
SqlConnection SQLConn = new SqlConnection(ConnString);
//建立 SqlCommand 物件
SqlCommand SQLComm = new SqlCommand();
SQLComm.Connection = SQLConn;
//給予 SqlCommand 物件 SQL 指令
SQLComm.CommandText = "Select * From UserTable Where UserID = @ID And UserPassword = @Password";
//第一種寫法,給予 SqlCommand 物件 SQL 指令內的參數
SQLComm.Parameters.Add("@ID", SqlDbType.Int);
SQLComm.Parameters["@ID"].Value = this.txtUserID.Text.Trim();
//第二種寫法,給予 SqlCommand 物件 SQL 指令內的參數
SQLComm.Parameters.AddWithValue("@Password", this.txtUserPassword.Text.Trim());
//取回資料內容
SQLConn.Open();
DataTable dt = new DataTable();
dt.Load(SQLComm.ExecuteReader());
沒有留言:
張貼留言