.net web网站如何防止sql注入
5个回答
展开全部
若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;
}
为此类添加以下方法,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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、操作数据库时,最好使用参数化
2、实在要拼接sql的时候,对字符串类型,只要把里面的单引号替换成2个单引号;
其它之类,比如数值类型,在拼接之前,判断是否数值;比如DateTime,拼接之前判断是否日期
就不会有问题了
拼接sql有时是不可避免的,所以注意第2点(有时也会在存储过程里拼接动态sql
2、实在要拼接sql的时候,对字符串类型,只要把里面的单引号替换成2个单引号;
其它之类,比如数值类型,在拼接之前,判断是否数值;比如DateTime,拼接之前判断是否日期
就不会有问题了
拼接sql有时是不可避免的,所以注意第2点(有时也会在存储过程里拼接动态sql
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般最后写SQL语句的时候。参数是用数组加入到SQL语句里的。我觉得那样应该没问题了。就算你也的注入码。最后出来的还是注入码。不会出现空数据或别的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、加密处理是最好的解决方法;
2、数据输入校验,JS和.net代码里都验证;
。。。
主要是这两种方法吧,
当然别的方法也还有
一时说不上来。。。
2、数据输入校验,JS和.net代码里都验证;
。。。
主要是这两种方法吧,
当然别的方法也还有
一时说不上来。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询