這隻是針對一種資料庫漏洞的解決辦法
如果查詢語句是"select * from T_User where username='" + textBox1.Text + "' and password= '" + textBox2.Text + "'";//這種方法不夠安全,因為如果在密碼中輸入' or '1'='1 同樣登入成功,這就是.資料庫漏洞
OleDbConnection mycon;
OleDbCommand myCommand;
OleDbDataReader myDataReader;
string myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\Administrator\\案頭\\new.mdb";
mycon = new OleDbConnection(myConnectionString);
try
{
mycon.Open();
string cmdstr = "select * from T_User where username= ? and password= ?";
myCommand = new OleDbCommand(cmdstr, mycon);
/////////////////////////////////////////////////////////////////
myCommand.Parameters.Clear();//清空參數
////////////////////////////////////////////////////////////////
OleDbParameter pUsername = new OleDbParameter("cs1",OleDbType.Char);//設定第一個參數
pUsername.Value = textBox1.Text;
myCommand.Parameters.Add(pUsername);
///////////////////////////////////////////////////////////////
OleDbParameter pPassword = new OleDbParameter("cs2", OleDbType.Char);//設定第二個參數
pPassword.Value = textBox2.Text;
myCommand.Parameters.Add(pPassword);
/////////////////////////////////////////////////////////////
myDataReader=myCommand.ExecuteReader();//這邊是執行資料庫操作
if (myDataReader.HasRows)
{
MessageBox.Show("登入成功");
}
else
{
MessageBox.Show("登入失敗");
}
myDataReader.Close();
mycon.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}