SQL字符串过滤 检测是否有危险字符

   一个C# SQL数据库字串操作函数,可实现对SQL字符串过滤、检测SQL是否有危险字符、修正sql语句中的转义字符,确保SQL不被注入:

  SQL字符串过滤函数:

  01public static bool ProcessSqlStr(string Str)

  02{

  03 bool ReturnValue = true;

  04 try

  05 {

  06 if (Str.Trim() != "")

  07 {

  08 string SqlStr ="exec|insert+|select+|delete|update|count|chr|mid|master+

|truncate|char|declare|drop+|drop+table|creat+

|create|*|iframe|script|";

  09 SqlStr +="exec+|insert|delete+|update+|count(|count+|chr+|+mid

(|+mid+|+master+|truncate+|char+|

+char(|declare+|drop+table|creat+table";

  10 string[] anySqlStr = SqlStr.Split('|');

  11 foreach (string ss in anySqlStr)

  12 {

  13 if (Str.ToLower().IndexOf(ss) >= 0)

  14 {

  15 ReturnValue = false;

  16 break;

  17 }

  18 }

  19 }

  20 }

  21 catch

  22 {

  23 ReturnValue = false;

  24 }

  25 return ReturnValue;

  26}

  以下是检测SQL语句中是否包含有非法危险的字符:

  view sourceprint?01///

  02/// 检测是否有Sql危险字符

  03///

  04/// 要判断字符串

  05/// 判断结果

  06public static bool IsSafeSqlString(string str)

  07{

  08 return !Regex.IsMatch(str, @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']");

  09}

  10///

  11/// 改正sql语句中的转义字符

  12///

  13public static string mashSQL(string str)

  14{

  15 string str2;

  16 if (str == null)

  17 {

  18 str2 = "";

  19 }

  20 else

  21 {

  22 str = str.Replace("'", "'");

  23 str2 = str;

  24 }

  25 return str2;

  26}

时间: 2024-12-30 00:28:59

SQL字符串过滤 检测是否有危险字符的相关文章

aspx-c # asp.net有没有一段正则表达式 可以过滤那些危险字符的

问题描述 c # asp.net有没有一段正则表达式 可以过滤那些危险字符的 c # asp.net有没有一段正则表达式 可以过滤那些危险字符的 比如我在文本框输入<br>alert("测试") 或者 update delete insert 这样的字符就提示是危险字符串.. 有上面好的思路 或者相关的文章 解决方案 cmd.Parameters.AddWithValue(""@参数名""参数值);假定这里cmd是SqlCommand

asp 实现对SQL注入危险字符进行重编码处理的函数_应用技巧

<% '****************************** '函数:CheckStr(byVal ChkStr) '参数:ChkStr,待验证的字符 '作者:阿里西西 '日期:2007/7/15 '描述:对SQL注入危险字符进行重编码处理 '示例:CheckStr("and 1=1 or select * from") '****************************** Function CheckStr(byVal ChkStr)  Dim Str:Str

url传递中文字符,特殊危险字符的解决方案(仅供参考)urldecode、base64

web开发的过程中,当我们需要在url中传递中文字符或是其它的html等特殊字符时,似乎总会碰到各种各样的小问题,因为不同的浏览器对他们的编码又不一样.对于中文,一般的做法是: 把这些文本字符串传给url之前,先进行urlencode($text)一下. 但是对于一些很"危险"的字符,比如说html字符,甚至是SQL注入相关的字符,如果很明显的传给系统,出于安全考虑,系统一般都会把它们过滤掉的. 那么,如果我们需要保留这些危险字符,不被过滤,该这么办呢? 我想到的办法是先给它们 bas

sql字符串函数大全和使用方法示例_MsSql

SQL SERVER支持的字符串函数内容: 复制代码 代码如下: LEN(string)函数LOWER(string)函数UPPER (string)函数LTRIM(string)函数RTRIM (string)函数SUBSTRING(string,start_position,length)函数CHARINDEX(string,substring)函数LEFT (string,length)函数RIGHT (string,length) 函数ASCII(string)函数ASCII(strin

php中url传递中文字符,特殊危险字符的解决方法_php技巧

我们需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各种乱,不同的浏览器对他们的编码又不一样, 对于中文,一般的做法是: 把这些文本字符串传给url之前,先进行urlencode($text)一下: 但是对于一些很"危险"的字符,比如说html字符,甚至是SQL注入相关的字符,如果很明显的传给系统,出于安全考虑,系统一般都会把它们过滤掉的. 现在,我们需要这些危险字符,该这么办? 我想到的办法是 先给它们 base64_encode($text) 编码,到服务端时,又

php中url传递中文字符,特殊危险字符的解决方案

我们需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各种乱,不同的浏览器对他们的编码又不一样, 对于中文,一般的做法是: 把这些文本字符串传给url之前,先进行urlencode($text)一下: 但是对于一些很"危险"的字符,比如说html字符,甚至是SQL注入相关的字符,如果很明显的传给系统,出于安全考虑,系统一般都会把它们过滤掉的. 现在,我们需要这些危险字符,该这么办? 我想到的办法是 先给它们 base64_encode($text) 编码,到服务端时,又

php字符串过滤与替换小结_php技巧

本文实例总结了php字符串过滤与替换的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php class cls_string_filter{  //将\n转化为<br/>--囧,这有意思么?  static public function nl2br($string){   return nl2br($string);  }  //将<br/>转化为\n  static public function br2nl($string){   $arra

SQL字符串处理函数总结

 select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了. left()是sql函数. select 字段1 from 表1 wherecharindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINARY

SQL字符串处理函数大全

select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1; 这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了. left()是sql函数. select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINAR