.net web网站如何防止sql注入

 我来答
赛纳行星
2010-12-14 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:35.1万
展开全部
若asp.net工程中没有全局类,则新建一个全局应用程序类;
为此类添加以下方法,SqlStr就是要屏蔽的Sql关键字,可以根据需要变化其中内容。
private bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str != "")
{
string SqlStr =

"select*|and'|or'|insertinto|deletefrom|altertable|update|createtable|createview|dropview|cr

eateindex|dropindex|createprocedure|dropprocedure|createtrigger|droptrigger|createschema|dro

pschema|createdomain|alterdomain|dropdomain|);|select@|declare@|print@|char(|select";
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.IndexOf(ss) >= 0)
{
ReturnValue = false;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ThinkIBM
2010-12-13 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5474万
展开全部
1、操作数据库时,最好使用参数化
2、实在要拼接sql的时候,对字符串类型,只要把里面的单引号替换成2个单引号;
其它之类,比如数值类型,在拼接之前,判断是否数值;比如DateTime,拼接之前判断是否日期
就不会有问题了
拼接sql有时是不可避免的,所以注意第2点(有时也会在存储过程里拼接动态sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlp123661788
2010-12-13 · 超过14用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:37.7万
展开全部
一般最后写SQL语句的时候。参数是用数组加入到SQL语句里的。我觉得那样应该没问题了。就算你也的注入码。最后出来的还是注入码。不会出现空数据或别的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjh18168
2010-12-13 · 超过25用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:69.6万
展开全部
1、加密处理是最好的解决方法;
2、数据输入校验,JS和.net代码里都验证;
。。。
主要是这两种方法吧,
当然别的方法也还有
一时说不上来。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MyQQ_712398967
2010-12-13
知道答主
回答量:40
采纳率:0%
帮助的人:20.7万
展开全部
使用参数,防止拼字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式