C# SQL注入攻击预防:从哪里开始
我希望我的网站能够安全地抵御SQL注入攻击。在ASP.NET网站(c#,web表单)中,是否有任何好的链接可以使网站免受这些类型的攻击 编辑:C# SQL注入攻击预防:从哪里开始,c#,asp.net,entity-framework,sql-injection,C#,Asp.net,Entity Framework,Sql Injection,我希望我的网站能够安全地抵御SQL注入攻击。在ASP.NET网站(c#,web表单)中,是否有任何好的链接可以使网站免受这些类型的攻击 编辑: 我应该指出,在我使用实体框架时,第一条也是最好的防线是不要使用 始终使用 请看。这是一个很棒的系列,涵盖了web应用程序的十大安全威胁以及如何使用ASP.net缓解这些威胁:请参阅以下参考资料: (MSDN) 基本上,正如Oded已经指出的那样,它可以归结为停止将SQL语句连接在一起——特别是当这涉及到用户输入文本框的数据时——并在ADO.NE
我应该指出,在我使用实体框架时,第一条也是最好的防线是不要使用 始终使用
请看。这是一个很棒的系列,涵盖了web应用程序的十大安全威胁以及如何使用ASP.net缓解这些威胁:请参阅以下参考资料:
- (MSDN)
使用带参数的存储过程,尽可能避免使用内联SQL…这很简单。大多数注入漏洞来自如下代码:
var myQuery="SELECT something FROM somewhere WHERE somefield="+userSuppliedData;
//execute myQuery against db
//now suppose userSuppliedData=="'';DROP TABLE somewhere;"
如果您像这样手动滚动sql语句,您就有风险。考虑使用ORM或参数化查询。< P>通过如下参数获取数据:
string str = "insert into CustomerHistoryDD(logo,ceoPicture,ceoProfilePicture,coverPhoto,employee1,employee2,employee3,employee4) values(@param1,@param2,@param3,@param4,@param5,@param6,@param7,@param8)";
SqlCommand cmd = new SqlCommand(str, con);
con.Open();
cmd.Parameters.AddWithValue("@param1", link);
cmd.Parameters.AddWithValue("@param2", link1);
cmd.Parameters.AddWithValue("@param3", link2);
cmd.Parameters.AddWithValue("@param4", link3);
cmd.Parameters.AddWithValue("@param5", tb_Emp1.Text);
cmd.Parameters.AddWithValue("@param6", tb_Emp2.Text);
cmd.Parameters.AddWithValue("@param7", tb_Emp3.Text);
cmd.Parameters.AddWithValue("@param8", tb_Emp4.Text);
cmd.ExecuteNonQuery();
con.Close();
lbl_msg.Text = "Data Saved Successfully";
我倾向于链接到这些电子书。但只有一个漏洞是OP询问的SQL注入。好的观点-添加->