asp.net(C#)中如何防止sql注入 前几天我的一个网站被sql注入了.黑客在我的数据库中表的每个字段都插入了一段脚本代码.请问要怎样防止sql注入呀?网上说对字符串过滤.请问在哪过滤,要怎样过滤?能不能在一个地方写了这段过滤的代码,对所有的页面都起作用了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是从我开始吧。把Request.QueryString的值过滤一下,删除非法SQL语句。 官方的http://technet.microsoft.com/zh-cn/cc562985.aspx 使用存储过程来过滤?原理也是将非法SQL语句删除。 存储过程的另一个方法是将Request.QueryString的值,作为一个值来处理,而不使用传统的SQL拼接处理。这样就可以有效避免了SQL注入了。 其实还有一种方法,就是处理普通SQL语句的时侯也使用参数处理方法,这样就可以避免所有SQL注处了。不过有一点小麻烦,就是写法上比传统的SQL拼接要复杂一点。 是不是使用这样的语句?SqlCommand cmd = new SqlCommand("select ID from table where name=@name;");cmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = Request.QueryString["name"];cmd.ExecuteNonQuery(); http://topic.csdn.net/u/20080510/16/29c515de-c4d2-41fe-a1dc-df84de18f9b7.html phpkill真聪明,想不到搞PHP还对C#这么了解,了不起!!! 注如漏洞一般就是没有过滤"'","or","and","select"等等。一般都是asp网站才有这样的漏洞,aspx的话估计这样的漏洞不怎么多!你可以去网上搜哈防sql注入代码。就知道怎么防范了!一般不用代码的话你也可以考虑把数据库名字,表名等改动哈!别把存放管理员帐号的表名命名为admin,user等等!还有把管理帐号和密码的字段不要设置成admin,password等等!你可以设置成没有规律的那些。这样的话即使你有这个漏洞,别人也不可能入侵的 所谓注入漏洞之所以能入侵就是因为管理员数据信息太容易被暴力猜解出来 只要你设置的不常见的那工具肯定是猜不出来的 要是仅靠手动猜解的话我估计那猜解的人肯定会崩溃的!还有后台什么连接不要让别人直接就能访问,后台设置隐蔽点!基本做到这些你的网站就比较稳当了! 重定向问题 碰到一个问题,求帮忙! ASP.NET 遍历文件夹下的文件名的问题 网站访问数据库有问题额。。。麻烦看下 服务端建立多个 Socket 为什么我在FCKeditorV2:FCKeditor编辑器里我输入韩文会显示乱码 selectionlist的问题 ++++++大哥们,你们做.net程序时用什么模式??什么叫工厂模式?有必要吗??? 我想把一个在Winform里创建的用户控件 在ASP页面里使用 登录验证的问题,如何解决? 在.net页面中 调用vbscript定义的变量 看了关于页面请求及响应的整个流程图,感觉很有意思,帖上来大伙看看.
把Request.QueryString的值过滤一下,删除非法SQL语句。
原理也是将非法SQL语句删除。
不过有一点小麻烦,就是写法上比传统的SQL拼接要复杂一点。
SqlCommand cmd = new SqlCommand("select ID from table where name=@name;");
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = Request.QueryString["name"];
cmd.ExecuteNonQuery();
一般都是asp网站才有这样的漏洞,aspx的话估计这样的漏洞不怎么多!
你可以去网上搜哈防sql注入代码。就知道怎么防范了!
一般不用代码的话你也可以考虑把数据库名字,表名等改动哈!
别把存放管理员帐号的表名命名为admin,user等等!
还有把管理帐号和密码的字段不要设置成admin,password等等!
你可以设置成没有规律的那些。这样的话即使你有这个漏洞,别人也不可能入侵的
所谓注入漏洞之所以能入侵就是因为管理员数据信息太容易被暴力猜解出来
只要你设置的不常见的那工具肯定是猜不出来的
要是仅靠手动猜解的话我估计那猜解的人肯定会崩溃的!
还有后台什么连接不要让别人直接就能访问,后台设置隐蔽点!
基本做到这些你的网站就比较稳当了!