动软可以说是一款很好的代码生成器软件,只要有数据库,那么除了U层以外的代码都可以生成了,自动生成三层架构的完整项目和代码。

 

1、动软介绍

        

         

          动软可以生成基于面向对象的思想和三层架构设计的代码,结合了软件开发中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。主要是现在对应数据库中表的积累代码的自动生成。

 

主要的功能:

    1、自动生成代码。生成代码的同时,各层的引用关系也就做好了。各层,所有能想到的方法都有了,很全。

    2、生成存储过程和脚本

    3、生成数据库结构文档

    4、多类型数据库管理器

    5、查询分析器

     6、插件

   这样动软就帮我们把一些重复性的东西做好了,我们不用再写一些重复性的代码而浪费时间了。       

 

2Sql注入

         


    以前我们的认识是类似存储过程的就会防止Sql注入,虽然不是绝对的,但是防御能力也比较强吧。

         所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

   

        动软拥有这么多功能,很方便,那么它是完美的吗?动软生成器生成的D层的代码都是拼接的字符串strWhere,这样很容易造成Sql注入,有人很轻易的就可以击破我们的系统。

        为了防止SQL注入我们只需要加入几行代码就可以了,这几行代码可以将非法字符过滤掉:

         /// <summary> 
        /// 过滤 Sql 语句字符串中的注入脚本
        /// </summary> 
        /// <param name="source"> 传入的字符串 </param> 
        /// <returns> 过 滤后的字符串 </returns> 
        public static string SqlFilter(string source)
        {
            // 单引号替换成两个单引号 
            source = source.Replace(" ' ", " '' ");

            // 半角封号替换为全角封号,防止多语句执行 
            source = source.Replace(";", "");

            // 半角括号替换为全角括号 
            source = source.Replace(" ( ", " ( ");
            source = source.Replace(" ) ", " ) ");

           // 要用正则表达式替换,防止字母大小写得情况
            // 去除执行存储过程的命令关键字 
            source = source.Replace(" Exec ", "");
            source = source.Replace(" Execute ", "");
            source = source.Replace(" Create ", "");
            source = source.Replace(" Drop ", "");



            // 去除系统存储过程或扩展存储过程关键字 
            source = source.Replace(" xp_ ", " x p_ ");
            source = source.Replace(" sp_ ", " s p_ ");

            // 防止16进制注入 
            source = source.Replace(" 0x ", " 0 x ");

            return source;
        }

    

    对数据库来说是非法的字符对于业务来说很可能是合法的。所以过滤非法字符还需要跟业务相结合,谨慎使用。

 

3、总结

         

    比如像淘宝那样大型网站做的就非常坚固,双十一,十二的时候购物的人那么多也没有什么异常,希望自己哪天也能做出那么强大的网站,那么强大的框架,学习之中……



更多推荐

动软代码生成器注意事项-Sql注入