1、sql注入比较难防,需要替换select,delete等一打字符
其实对于字符型替换再多都没有替换单引号为两个单引号来的好!对于数字型替换再多都没有用,一定要类型转换。
2、忽略DropDownList传来的东西
其实是不对的,一切客户端的东西都是不可信任的,select下拉框也是!因为可以自己做一个htm提交到服务器。
3、access比sqlserver不安全
安全不安全关键看怎么用,如果sqlserver还是像access一样用,一个sa帐户的话,很明显,sqlserver比access不安全,可以直接得到表名和字段名!access反而倒安全点了,因为只能通过逐位猜解得到。
4、网站没有显示出错信息就说明网站是安全的
当有记录的时候显示记录,没有记录的时候显示找不到任何记录,通过这两种状态就可以猜解字段名了,所以网页不出错不能说明是安全的
5、忽略post提交的信息
很多人对url上传递的东西过滤严格,对于post的东西不理不睬是不对的,post的东西更加容易被注入,因为一般字段比较多
在asp.net中强烈建议通过参数来实现sql而不是sql拼接,因为就算你每一个都过滤百密难有疏
比如:
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlCommand comm=new SqlCommand("update tb1 set vName=@vName,iAge=@iAge where ID=@id",conn);
SqlParameter parm1=new SqlParameter("@vName",SqlDbType.NVarChar,50);
parm1.Value=((TextBox)e.Item.FindControl("name")).Text;
SqlParameter parm2=new SqlParameter("@iAge",SqlDbType.Int);
parm2.Value=((TextBox)e.Item.FindControl("age")).Text;
SqlParameter parm3=new SqlParameter("@id",SqlDbType.Int);
parm3.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
这样的代码看起来舒服而且又安全,何乐不为?
分享到:
相关推荐
详细的介绍了防止sql注入攻击,内附asp.net 源码和vb.net源码。是初学者不错的选择。希望能够帮助到你。
ASP.NET防止SQL注入函数,C harp代码
【ASP.NET编程知识】ASP.NET防止SQL注入的方法示例.docx
Asp.Net通用Sql防注入源码 Asp.Net程序员预防程序被sql注入攻击的必备知识.
史上最全的.net 防止sql注入攻击的替换文本
【ASP.NET编程知识】ASP.NET过滤类SqlFilter,防止SQL注入 .docx
学习代码 ASP.Net C# SQL注入 跨脚步漏洞 案例
asp.net简单防范sql注入漏洞 防止 sql注入攻击 1 限制 文本框的最大长度 2 删除用户的单引号 3 处理sql注入的另外一个方法是 使用ado.net command对象的参数集合。 而不是评接多个字符串
ASP.NET防SQL注入脚本程序 ASP.NET防SQL注入脚本程序
防SQL注入DEMO,防SQL注入DEMO,防SQL注入DEMO
ASP.NET中如何防范SQL注入式攻击 自己看,共3页,感觉还是有点用处
一、什么是SQL注入式攻击? SQL注入式攻击就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,...
本文实例讲述了ASP.NET防止SQL注入的方法。分享给大家供大家参考,具体如下: 最近接手别人一个项目,发现存在SQL注入漏洞,因为不想改太多代码,所以那种参数法防注入呢我就用不着了。只能用传统的笨一点的办法了。...
基于ASP.NET下SQL注入攻击防范与应用
protected void Application_BeginRequest(object sender, EventArgs e) { //遍历Post参数,隐藏域除外 foreach (string i in this.Request.Form) { if (i == "__VIEWSTATE") continue; this.goErr(this....
ASP.NET源码——通用防SQL注入漏洞程序(Global.asax方式).zip
常用的asp.net的SQL防注入过滤函数大集合,实用性很高! 执行效率不错!
简单的asp.net登陆sql防注入功能是由一个if语句实现
asp.net网站防止SQL注入攻击,通常的办法是每个文件都修改加入过滤代码,这样很麻烦,下面介绍一种办法,可以从整个网站防止注入。
asp.net防sql注入,很实用。主要页面提交时候进行判断