sql过滤字符
Ⅰ 求过滤sql非法字符的函数
Function CheckSql() '防止SQL注入
Dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language='javascript'>{alert('请不要在参数中包含非法字符!');history.back(-1)}</Script>"
Response.end
end if
next
Next
End If
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language='javascript'>{alert('请不要在参数中包含非法字符!');history.back(-1)} </Script>"
Response.end
end if
next
next
end if
End Function
Ⅱ SQL字符串过滤 检测是否有危险字符
SQL字符串过滤函数:
public static bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str.Trim() != "")
{
string SqlStr = "exec|insert+|select+|delete|update|count|chr|mid|master+|truncate|char|declare|drop+|drop+table|creat+|create|*|iframe|script|";
SqlStr += "exec+|insert|delete+|update+|count(|count+|chr+|+mid(|+mid+|+master+|truncate+|char+|+char(|declare+|drop+table|creat+table";
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.ToLower().IndexOf(ss) >= 0)
{
ReturnValue = false;
break;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
以下是检测SQL语句中是否包含有非法危险的字符:
/// <summary>
/// 检测是否有Sql危险字符
/// </summary>
/// <param name="str">要判断字符串</param>
/// <returns>判断结果</returns>
public static bool IsSafeSqlString(string str)
{
return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
}
/// <summary>
/// 改正sql语句中的转义字符
/// </summary>
public static string mashSQL(string str)
{
string str2;
if (str == null)
{
str2 = "";
}
else
{
str = str.Replace("\'", "'");
str2 = str;
}
return str2;
}
Ⅲ sql 查询语句中 如何过滤 指定的字符
sqlserver:
select REPLACE(字段名1,'湖南省','')
上面 湖南省为要替换的字符串,''为要替换的内容
Ⅳ 在线等SQL数据库怎么过滤空字符
nvl(col,'')
coalesce(col1,col2)
isnull(col,'')
空值转换函数 或者 要过滤数据的话
where col is null or col = ''
Ⅳ SQL如何去除特殊字符
sql 除去特殊字符,采用replace函数,但是有些类似空格的还是无法删除,
那么由于这些是非空格,而是 "回车"、“tab”键,此时我们需要采用ascII码,作为键值来替换,
MSSQL中空格完美剔除方法分享
我们可以使用类似的方法,处理table中的其它字符。
请认真阅读,并参考。
Ⅵ SQL怎么筛选出字符串中指定规则的字符
可用substring函数来查询。
比如表中有如下数据:
现在要查询第二位字符为“s”的数据,可用如下语句:
select * from test where substring(STR,2,1)='s'
结果截图:
substring函数说明:
substring函数需要三个参数,其中第一个参数是要截取的字符串,第二个参数是要查询字符串的起始位,第三个参数为截取的字符长度。
Ⅶ sql 查询语句中如何过滤指定的字符
1、语句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' AND prod_price>8。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll制造价格大于8的所有商品。
注意:--后面的字符是这条语句的注释,这条语句有两个条件,分别用AND关键字联接在一起,并且过滤结果必须满足这两个条件,如果只满足其中一个该数据不会被检索出来。
2、OR操作符(或)
语句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' OR prod_price>8。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll制造价格大于8的所有商品值。
注意:--这里要说明的是OR操作符与AND操作符的不同之处是只要满足其中一个条件,数值就会被检索出来,例如:由供应商king doll制造价格小于8商品或者由供应商king add制造价格大于8的商品只要其中一个条件符合,数据就被检索出来。
3、IN操作符(指定条件范围)
语句:SELECT * FROM dbo.Procts WHERE prod_name IN ('king doll' ,'Queen dool')。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll和Queen dool制造的商品。
注意:它的功能其实和OR一样,但是它的执行速度会更快并且简洁,最大的优点是可以包含其他SELECT语句,能够更动态地建立WHERE字句。
Ⅷ SQL 过滤字符字段值
select * from spk where isnumeric(spbh)=0
解释:
ISNUMERIC
确定表达式是否为一个有效的数字类型。
语法
ISNUMERIC ( expression )
参数
expression
要计算的表达式。
返回类型
int
注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。
Ⅸ 防sql注入到底应过滤哪些字符
一般来说,这样处理即可:
所有参数都当作字符串处理,用单引号括起来。另外就是要把字符串中的单引号替换掉。
Ⅹ SQL 如何把特殊字符过滤让他插入不进去
那就只能建立个约束,不过你这种字符太多,很麻烦
要不就把这些字符建立一张表,然后用触发器来限制这些字符的插入
------------------
约束那个我简单写一下
altertable表名addconstraint约束名check(字段notlike'%@%'and字段notlike'%$%'and字段notlike'%&%')
反正就是每一个都用and连接