今天馬哥找來何鍵橋師兄給分析如何防SQL注入,師兄不耐其煩的給講了預存程序的簡單運用。
就拿一個簡單插入語句做例子,把新聞標題和內容插入資料庫News表
先在資料庫裡寫一個預存程序
create proc AddNews
(
@title varchar(50),
@content text
)
as
insert into News values(@title,@content)
然後在後台頁面裡寫這樣的代碼: protected void Button1_Click(object sender, EventArgs e)
{
string strConn = ConfigurationManager.ConnectionStrings["seaConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(strConn);
//string sql = "insert into news (NewsTitle,NewsContent) values ('" + this.TextBox1.Text + "','" + this.TextBox2.Text + "')"
SqlParameter[] paras = new SqlParameter[2];
paras[0] = new SqlParameter("@title", SqlDbType.VarChar, 50);
paras[0].Value = this.TextBox1.Text;
paras[1] = new SqlParameter("@content",SqlDbType.Text);
paras[1].Value = TextBox2.Text;
SqlCommand cmd = new SqlCommand(AddNews, con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Write("OK!");
}
這樣就實現了注釋的語句所能實現的功能。
一個用預存程序做的資料庫操作完成了。