sql注入问题

roklba 2007-04-07 02:58:51
大家都说用参数的方法可以防sql注入,但是不知原理,请大家指教。
还有asp.net里添加参数的方法有几个重载。我用最简单的一种(就是不指定类型和长度)可以防注入么?如下:
...
com=new SqlCommand();
...
com.Parameters.Add(参数名,参数值);
...全文
272 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
roklba 2007-04-09
  • 打赏
  • 举报
回复
呵呵,谢谢各位了。结贴吧。
bakers 2007-04-07
  • 打赏
  • 举报
回复
http://blog.csdn.net/bakers/archive/2007/02/01/1500399.aspx
http://blog.csdn.net/bakers/archive/2007/02/01/1500029.aspx
tanbear2 2007-04-07
  • 打赏
  • 举报
回复
存储过程是预编译的,所以是可以防治SQL注入攻击的
ztwz 2007-04-07
  • 打赏
  • 举报
回复
用参数一般就不会被注入了吧!
存储过程难得找存储过程名!
roklba 2007-04-07
  • 打赏
  • 举报
回复
呵呵,谢谢大家的参与。不过还是不够明白!
游戏人间 2007-04-07
  • 打赏
  • 举报
回复
重的地方用参数就好,还管他是怎样实现的呢?

如果我自己做的话,那就是把所有存在危险的字符替换掉.也是可行了
「已注销」 2007-04-07
  • 打赏
  • 举报
回复
还是用参数好
belldandy11 2007-04-07
  • 打赏
  • 举报
回复
学习
chaoren1641 2007-04-07
  • 打赏
  • 举报
回复
也不知道参数的原理
xiaowen1211 2007-04-07
  • 打赏
  • 举报
回复
建议把所有对数据库的增删改操作都用存储过程做 这样最安全也最省心 赫赫
daishengs 2007-04-07
  • 打赏
  • 举报
回复
还是用参数好
chuxue1342 2007-04-07
  • 打赏
  • 举报
回复
学习!
fxqyyzg 2007-04-07
  • 打赏
  • 举报
回复
比如你判断用户是否可以登陆的存储过程
select count(*) from User where Name = @name and pwd = @pwd
如果返回1就可以登陆 0就不能对登陆

如果这个时候的@name的值是 '用户名--'或者' or 1=1--' 那样只要知道用户名 不用密码也可以登陆
所以尽量把存储过趁感谢复杂点
----------------------
注入攻击不只是'用户名--'或者' or 1=1--' 这样
rjzou2006 2007-04-07
  • 打赏
  • 举报
回复
将'替换为"
再将- 替换为 -

就能防止sql注入了

fxqyyzg 2007-04-07
  • 打赏
  • 举报
回复
http://hi.baidu.com/simliving/blog/item/df62172441eade32c995597b.html

http://hi.baidu.com/simliving/blog/item/27d2898feaa10ffb503d9244.html

http://hi.baidu.com/simliving/blog/item/d3ea43b5bba712cf37d3ca44.html

这三篇文章写的不错,建议楼主看一下
wangzhaoli1982 2007-04-07
  • 打赏
  • 举报
回复
比如你判断用户是否可以登陆的存储过程
select count(*) from User where Name = @name and pwd = @pwd
如果返回1就可以登陆 0就不能对登陆

如果这个时候的@name的值是 '用户名--'或者' or 1=1--' 那样只要知道用户名 不用密码也可以登陆
所以尽量把存储过趁感谢复杂点
fxqyyzg 2007-04-07
  • 打赏
  • 举报
回复
一般用参数查询就可以防止注入攻击了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧