`

C# 检查字符串,防SQL注入攻击

    博客分类:
  • C#
阅读更多
例子里暂定为=号和'号
bool CheckParams(params object[] args)
{
    string[] Lawlesses={"=","'"};//在这里还可以写要过滤的字符串
    if(Lawlesses==null||Lawlesses.Length<=0)return true;
    //构造正则表达式,例:Lawlesses是=号和'号,则正则表达式为 .*[=}'].* (正则表达式相关内容请见MSDN)
    //另外,由于我是想做通用而且容易修改的函数,所以多了一步由字符数组到正则表达式,实际使用中,直接写正则表达式亦可;
    string str_Regex=".*[";
    for(int i=0;i< Lawlesses.Length-1;i++)
        str_Regex+=Lawlesses[i]+"|";
    str_Regex+=Lawlesses[Lawlesses.Length-1]+"].*";
    //
    foreach(object arg in args)
    {
        if(arg is string)//如果是字符串,直接检查
        {
            if(Regex.Matches(arg.ToString(),str_Regex).Count>0)
            return false;
        }
        else if(arg is ICollection)//如果是一个集合,则检查集合内元素是否字符串,是字符串,就进行检查
        {
            foreach(object obj in (ICollection)arg)
            {
                if(obj is string)
                {
                    if(Regex.Matches(obj.ToString(),str_Regex).Count>0)
                    return false;
                }
            }
        }
    }
    return true;

}

分享到:
评论

相关推荐

    SQL注入攻击与防御(安全技术经典译丛)

    本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。  什么是SQL注入?理解它是什么以及它的基本原理  查找、确认和自动发现SQL注入  查找代码...

    SQL注入攻击与防御

    本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。  什么是SQL注入?理解它是什么以及它的基本原理  查找、确认和自动发现SQL注入  查找代码...

    QQ登录页面注册页面sql防注入

    sql防注入 网页查询 插入 更新数据库 省市三级联动 GridView的使用等等 里面的资料都很详细文件大小2.99 MB (3,143,053 字节) 解压后8.04 MB (8,431,678 字节) 下面是相关的代码 省市三级联动 请选择"&gt; 请选择"&gt;...

    C#验证用户输入信息是否包含危险字符串的方法

    本文实例讲述了C#验证用户输入信息是否包含危险字符串的方法。分享给大家供大家参考。具体分析如下: 这个C#函数可以用于表单输入数据的后端验证,判断用户是否提交了一些sql相关的危险注入字符 /// /// 检测客户...

    C#全能速查宝典

    1.4.30 Matches方法——检查字符串是否有重复的词出现 71 1.4.31 MONTH函数——返回指定日期中月部分的整数 73 1.4.32 PadLeft方法——在左边用空格填充 73 1.4.33 PadRight方法——在右边用空格填充 74 1.4.34 ...

    详解C#中SqlParameter的作用与用法

    一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。 string sql =...

    N1QlInjection:针对Couchbase Server 4.0的N1QL注入攻击示例

    如果将用户输入直接插入查询中,请用一对单引号('')对用户输入字符串(')中的单引号进行转义 从查询中删除注释并放入代码中(这是附加的保护层) 使用对号转义N1QL标识符,并在用户输入中使用对号对转义

    如果该变量为空,我想在数据库中插入null值,但是在命令字符串中,它将插入空白而不是null。 因此,请给出错误。

    不要连接sql语句,这将导致sql注入[^]攻击始终使用参数化查询来防止SQL Server [^]中SQL注入攻击,这样做将简化您的sql语句,并且无需费心处理数据类型formattry像这个cmd = new ...

    SafeSqlBuilder:您不知道需要的ORM增强功能

    但是,构建此SQL会使您容易遭受SQL注入攻击。 解决方案 使用Safe Dynamic SQL Builder,您可以预先配置表的形状,而无需预先定义输出的形状。 它通过基于可从客户端接收的查询对象生成自定义SQL来实现此目的。 从...

    asp.net知识库

    最详细的SQL注入相关的命令整理 Oracle Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的...

    net学习笔记及其他代码应用

    答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答:Class可以被实例化,属于引用类型,是分配在内存的...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    7.3.6 SQL注入攻击 7.3.7 使用参数化命令 7.3.8 调用存储过程 7.4 事务 7.4.1 事务和ASP.NET应用程序 7.4.2 隔离级别 7.4.3 保存点 7.5 提供程序无关的代码 7.5.1 创建工厂 7.5.2 用工厂创建...

    亮剑.NET深入体验与实战精要2

    1.3.9 字符串常见操作 21 1.3.10 几个常用的数学函数 27 1.4 .NET的面向对象之门 27 1.4.1 继承——“子承父业” 28 1.4.2 委托——“任务书” 35 1.4.3 事件——“年终分红” 42 1.4.4 反射——“解剖” 49 1.5 ...

    亮剑.NET深入体验与实战精要3

    1.3.9 字符串常见操作 21 1.3.10 几个常用的数学函数 27 1.4 .NET的面向对象之门 27 1.4.1 继承——“子承父业” 28 1.4.2 委托——“任务书” 35 1.4.3 事件——“年终分红” 42 1.4.4 反射——“解剖” 49 1.5 ...

Global site tag (gtag.js) - Google Analytics