我有以下代碼片段。sql注入問題
SqlCommand cmd = new SqlCommand("SELECT FName,LName FROM EMPLOYEE_TABLE WHERE EmployeeID = '" +TextBox1.Text + "' AND Password = '"+ TextBox2.Text +"'", con);
SqlDataReader x = cmd.ExecuteReader();
try
{
if (x.Read())
{
name = (string)x["FName"] +' '+ (string)x["LName"];
Session["NAME"] = name;
Session["ID"] = TextBox1.Text;
Response.Redirect("sample.aspx?action=On_Click");
}
else
{
errormsg.Text = "login failed.Please enter Valid UserID and Password";
errormsg.ForeColor = System.Drawing.Color.Red;
}
}
catch (Exception exp)
{
errormsg.Text = "Sorry,You dont have access to this portal.";
}
finally
{
x.Close();
con.Close();
}
現在,當我使用一個有效的ID(即存在)和密碼作爲ABC「或‘X’=」×然後將其登錄到數據庫中的第一個帳戶表中的。直到這很好。
但是,當我嘗試調試代碼時,它會引發錯誤Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.
。
此外,如果它是拋出一個錯誤,那麼爲什麼它登錄到數據庫的第一個帳戶。注意:數據庫的第一個帳戶與我提供的用戶ID不同。
注:我是這個應用程序的開發。所以我沒有做任何違法的事情。 :)
第一個問題是,如果你是開發商,你是知道SQL注入的,你爲什麼不至少使用參數化查詢? – Jaymz 2011-05-10 12:02:49
雅,很好的問題。多數民衆贊成bcoz我剛纔瞭解到SQL注入,所以我嘗試在我自己的應用程序。然而我沒有太多的想法回合參數化查詢。 – scooby 2011-05-10 12:05:04
.net有一些建立在一些blatent sql注入問題的保護(微軟正在做我認爲你應該要做的事)。我猜你正在遇到這些。我記得當我第一次發現SQL注入時,我也遇到了它們。 – Chad 2011-05-10 13:41:57