Fortify SCA源代码扫描工具是一款强大的安全测试工具,它能够检测出上百种漏洞类别,并提供全面的分析报告。本系列文章就基于安全漏洞方面,为您介绍Fortify SCA源代码扫描工具在检测出不同漏洞时该如何处理、预防。今天为您讲解的是SQL注入漏洞的处理 。
SQL注入这一类漏洞主要针对一些SQL语句做动态拼接时,传入的一个非法字符,例如 SELECT id,name FROM User WHERE deparment=1000 and {ConditionalExpression} ,其中 {ConditionalExpression} 作为参数本想在查询页面做一些动态条件的拼接,这样就会带来SQL注入的风险。
通过以下策略可以有效预防SQL注入的发生:
1、 给系统中连接数据库的帐号分配合适的权限。一般业务系统中数据库操作帐号,不要分配对数库结构产生改变的权限如CREATE TABLE,DROP XXXX 等
2、 对复杂的查询使用储存过程,要预先定义好参数,并在储存过程中拼接SQL语句。
3、 尽量使用例如SqlParmater参数化传值使之成为规范。
4、 对SQL语句或者参数值做特殊关键词过滤。
5、 运用MyBATIS、Hibernate,等支持SQLMAPPER的ORM框架。
6、 尽量避免SQL语句动态拼接 或用动态LINQ 替代
对于使用数据库进行开发的应用系统,存在SQL注入的可能性很大。自1999年以来,SQL注入就成了常见的安全漏洞之一,至今仍排在CVE列表中前十。所以在开发人员进行开发时,要对这项漏洞有所预防。
后面的文章会继续为您介绍通过Fortify SCA源代码扫描工具扫描出SQL注入漏洞后应该如何去修改,敬请您继续关注,如果您想了解更多信息可点击下方相关链接进行查看,也可点击右侧咨询按钮向我们的技术专家进行咨询和技术交流,感谢您的观看。