博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防止SQL注入
阅读量:6040 次
发布时间:2019-06-20

本文共 1678 字,大约阅读时间需要 5 分钟。

.NET防SQL注入方法


1,利用SqlCommand传参数的方法:

string strSQL="SELECT * FROM [user] WHERE user_id=@id";

SqlCommand cmd = new SqlCommand();

cmd.CommandText = strSQL;

cmd.Parameters.Add("@id",SqlDbType.VarChar,20).Value=Request["id"].ToString();

2,过滤禁止运行法:

/// <summary>

/// 过滤SQL语句,防止注入

/// </summary>

/// <param name="strSql"></param>

/// <returns>0 - 没有注入, 1 - 有注入 </returns>

public int filterSql(string sSql)

{

int srcLen, decLen = 0;

sSql = sSql.ToLower().Trim();

srcLen = sSql.Length;

sSql = sSql.Replace("exec", "");

sSql = sSql.Replace("delete", "");

sSql = sSql.Replace("master", "");

sSql = sSql.Replace("truncate", "");

sSql = sSql.Replace("declare", "");

sSql = sSql.Replace("create", "");

sSql = sSql.Replace("xp_", "no");

decLen = sSql.Length;

if (srcLen == decLen) return 0; else return 1;        

}

//sql过滤关键字   public static bool CheckKeyWord(string sWord)    {       //过滤关键字        string StrKeyWord = @"select|insert|delete|from|count\(|drop table|update|truncate|asc\(|mid\(|char\(|xp_cmdshell|exec master|netlocalgroup administrators|:|net user|""|or|and";     //过滤关键字符     string StrRegex = @"[-|;|,|/|\(|\)|\[|\]|}|{|%|\@|*|!|']";        if (Regex.IsMatch(sWord, StrKeyWord, RegexOptions.IgnoreCase) || Regex.IsMatch(sWord, StrRegex))            return true;        return false;    }

3,存储过程


js版的防范SQL注入式攻击代码:

<script language="javascript">

<!--

var url = location.search;

var re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|:|net%20user|\|%20or%20)(.*)$/gi;

var e = re.test(url);

if(e) {

alert("地址中含有非法字符~");

location.href="error.asp";

}

//-->

<script>

转载地址:http://fsrhx.baihongyu.com/

你可能感兴趣的文章
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
获取post传输参数
查看>>
ASP生成静态页面的方法
查看>>
HDU 1325 Is It A Tree? 判断是否为一棵树
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
css 禁止选中文本
查看>>