++++关于讨论如何更有效的防止SQL注入式攻击的方法!

hjwzr 2006-04-18 11:24:47
小弟初学.Net,前面用ASP一段时间,出现过好几次SQL注入式攻击.然后就打补丁,解决此问题,那么.NET下如何防止SQL注入式攻击呢?能否讲一下SQL注入式攻击的原理,从代码本身来解决这个问题.谢谢
...全文
744 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
sh_caizicheng 2006-07-15
  • 打赏
  • 举报
回复
学习的的好东西
德仔 2006-04-19
  • 打赏
  • 举报
回复
我全部操作都写在存储过程里去,这样可不可搞掂?
r_s 2006-04-19
  • 打赏
  • 举报
回复
请给我一份资料redstar226@163.com,谢谢
iceblue2005gather 2006-04-19
  • 打赏
  • 举报
回复
我也要资料看看,确实还不知道水深几许,,,

zhangli_gather@163.com.

谢谢windbey(北风)
radio_3000 2006-04-19
  • 打赏
  • 举报
回复
还有就是别忘了在sql里加上'
比如不要写where id=3写成where id='3'
不理解如果是整形也要加'符号吗??


TO:windbey(北风)

我也想要资料看看:lizhi9883@sina.com
leechiyang 2006-04-19
  • 打赏
  • 举报
回复
还有就是别忘了在sql里加上'
比如不要写where id=3写成where id='3'
leechiyang 2006-04-19
  • 打赏
  • 举报
回复
很简单,用字符串替换就可以了,
把'替换成''
防止注入没问题。
adam_xiu 2006-04-19
  • 打赏
  • 举报
回复
public string check(string str)
{
str=str.Replace("'","‘");
str=str.Replace(";",":");
str=str.Replace("&","&");
str=str.Replace("%20","");
str=str.Trim();
return str;
}
hjwzr 2006-04-19
  • 打赏
  • 举报
回复
hibernate 是什么
jaopen 2006-04-19
  • 打赏
  • 举报
回复
用hibernate!
xwvivien 2006-04-18
  • 打赏
  • 举报
回复
最简单有效的方法:
字符型参数:replace("'","''")
数字型参数就判断是否为数字就行了。
amnoh 2006-04-18
  • 打赏
  • 举报
回复
1.用存储过程
2.用参数传递值

这样就不可能通过注入攻击了
==============================

注入是博大精深的,用了存储过程,用了参数传递值, 如果存储过程中本身就存在拼接语句呢?
同样会注入的,特别是你用分页存储过程的话.....
我只好在存储过程中每次拼接时再进行检查,头痛啊,就怕哪儿出个漏子
beiouwolf 2006-04-18
  • 打赏
  • 举报
回复
1.用存储过程
2.用参数传递值

这样就不可能通过注入攻击了
pccc1984 2006-04-18
  • 打赏
  • 举报
回复
用SqlParameter,这是微软建议的方法,
caobob 2006-04-18
  • 打赏
  • 举报
回复
前台可以用验证,正则,后台采取存储过程.最好的办法我觉得是加密.不管他给你一段什么.我传给数据库时都走加密组件,反译一下传过去.你看看他怎么注入你吧:)
hjwzr 2006-04-18
  • 打赏
  • 举报
回复
TO:windbey(北风)

偶也要 XJGQ@SOHU.COM
gsk99 2006-04-18
  • 打赏
  • 举报
回复
gsk999@sina.com
NickyYang 2006-04-18
  • 打赏
  • 举报
回复
用存儲過程
windbey 2006-04-18
  • 打赏
  • 举报
回复
把邮箱告诉我,晚上回家我给你发几个文档。关于SQL注入的
sunchaohuang 2006-04-18
  • 打赏
  • 举报
回复
SQL查询语句sql = "select * from where userid='" + this.tbname + "'";
这是一个普通的查询语句
在登陆处输入 (';or 1=1 --)

上面的语句就变成了select * from where userid='' or 1=1 --(后面的都被注释掉了这就是--的作用);
验证通过了

为了防止就要使用参数!或者对输入加密如下:
select *from where userid = @userid;

这里就简单的说一下,具体请看帮助
加载更多回复(14)

62,041

社区成员

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

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

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

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