博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.net防止SQL注入方法
阅读量:7114 次
发布时间:2019-06-28

本文共 1250 字,大约阅读时间需要 4 分钟。

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  where ); 
            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();

这样的代码看起来舒服而且又安全,何乐不为? 

转自:http://www.cnblogs.com/hcmfys/archive/2008/07/11/1240809.html

该文章链接出现在:

你可能感兴趣的文章
python大战机器学习——半监督学习
查看>>
ethereum/EIPs-1271 smart contract
查看>>
ADempiere3.6.0LTS - 重新导入会计科目(基于Ubuntu Desktop 12.04 LTS)
查看>>
Project Euler Problem 48: Self powers
查看>>
python一个小程序:猜数字
查看>>
转:web.xml 配置中classpath: 与classpath*:的区别
查看>>
vue-自定义组件传
查看>>
由用户反映DroidPilot安装之后,License没有同步安装 - 解决办法
查看>>
java发展史与java的语言特性
查看>>
trunk端口配置错误导致环路
查看>>
《坟·题记》
查看>>
小女也爱c#(1)
查看>>
css里面的几个你不知道的属性
查看>>
初学js
查看>>
spring-framework-4.2.4.RELEASE-docs
查看>>
iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
查看>>
洛谷P4070 生成魔咒
查看>>
linux下挂载NTFS分区错误修复
查看>>
是C太傻逼?还是C++不够傻逼;
查看>>
Anaconda使用总结
查看>>