CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

SQL注入式攻击,用SQL参数的方法可以防得住吗?

楼主no_lost(这次不再错过)2005-11-07 17:15:21 在 .NET技术 / ASP.NET 提问

select   *   from   where   name=@name  
  Comm.Parameters.Add(new   SqlParameter("@name",SqlDbType.VarChar,50)).Value=Request.QueryString["name"];  
   
  这样可以防得住SQL注入式攻击吗? 问题点数:60、回复次数:17Top

1 楼gzsxy8013(more)回复于 2005-11-07 17:19:20 得分 5

可以  
  没问题  
  Top

2 楼exboy(kuku)回复于 2005-11-07 17:24:35 得分 10

这样没SQL注入式攻击的问题  
  Top

3 楼jxufewbt(我的目标是5星)回复于 2005-11-07 17:26:34 得分 10

防止SQL注入式攻击的有效方法就是用SQL参数,或用存储过程。Top

4 楼no_lost(这次不再错过)回复于 2005-11-07 17:29:05 得分 0

谢谢各位Top

5 楼cansum396(漆黑的夜)回复于 2005-11-07 17:45:12 得分 0

可以防SQL注入攻击Top

6 楼helimin19(冷風.net)回复于 2005-11-07 18:05:34 得分 10

這樣是動態存儲過程了  
   
  照樣可以功擊你  
   
  只能控制'-  
  Top

7 楼qingbo_hu(湖儿清清水)回复于 2005-11-07 18:35:52 得分 0

80%  
  Top

8 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-11-07 19:04:35 得分 10

SQL="select   *   from   where   name='"+    
      ((string)Request.QueryString["name"]).Replace("'","''")+"'";  
  Top

9 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-11-07 19:07:45 得分 0

参数可以防止字符串中注入攻击,因此过程等可以防止注入,但是没有必要将本来不是参数的语句改写成参数的。Top

10 楼yefeihaha(学习)回复于 2005-11-08 13:39:23 得分 0

可以的Top

11 楼no_lost(这次不再错过)回复于 2005-11-08 20:38:38 得分 0

回复人:   sp1234  
   
  也有道理Top

12 楼mumushu(木木树)回复于 2005-12-26 22:13:59 得分 0

可以,Top

13 楼YapEro([::q^-^p::])回复于 2005-12-26 22:30:43 得分 10

不同意sp1234,  
  把参数直接写在字符串中是以前vb/asp的习惯,虽然可以对参数过滤单引号,但还是不太安全,只是开发的时候方便而已,如果从安全角度考虑,微软提倡参数写在SQL语句里,然后定义参数的type,size,value,如同存储过程一样,除了安全还能异常处理等功能(譬如控制size)。  
   
  开发中如果安全性比较重要的话还是听从微软的建议,只是添加参数配置时比较麻烦,会多很多代码,特别是参数比较多的时候,而且没法避免,可以参考petShop的例子。  
  如果安全性要求不高,时间紧的话直接写成一句字符串也无所谓。Top

14 楼cen123(C#.NET)回复于 2005-12-26 23:27:58 得分 0

使用存储过程和SQL参数应该可以防止SQL注入。Top

15 楼lnwuyaowei(风可以追我)回复于 2005-12-27 00:56:57 得分 0

有没有人实验过????sql参数真的在任何情况下都能防注入么?Top

16 楼bingbingcha(不思不归,不孟不E,原来是头大灰狼)回复于 2005-12-27 09:02:03 得分 5

有没有人实验过????sql参数真的在任何情况下都能防注入么?  
   
  \==================================  
   
  1.加过滤函数,过滤每个传递的进来的字符串,替换掉'%()char,ASCII等等特殊字符..数据库ID是int的要改转换int..确保数据类型正确对应..  
   
  2.只获取你需要的长度,例如你需要10,就不要在Param中限制..  
   
  3.加密你的get数据,避免SQL猜测.  
   
  做好上面这些,基本上是可以避免被攻击的危险..Top

17 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2005-12-27 09:11:18 得分 0

同意一回   sp1234吧。Top

相关问题

  • 关于sql注入攻击
  • ===============请问各位高手,这样能被sql注入攻击吗?==================
  • 问大家一个问题,什么叫SQL注入式攻击???
  • 菜鸟问题,经常听说SQL注入式攻击,是怎么回事啊,ASP.NET中如何防范SQL注入式攻击?
  • 使用参数化查询代替连接字符串能够解决sql注入的问题吗
  • SQL注入的问题
  • sql注入漏洞检测
  • 关于防SQL注入的问题
  • 杜绝sql注入的办法
  • jsp中存在sql注入吗?

关键词

  • sp1
  • sql注入
  • 注入
  • 存储过程
  • 安全
  • sql
  • 参数
  • 字符串
  • sql注入式攻击
  • 防止

得分解答快速导航

  • 帖主:no_lost
  • gzsxy8013
  • exboy
  • jxufewbt
  • helimin19
  • sp1234
  • YapEro
  • bingbingcha

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo