数据库安全防护技术 - SQL注入防御
数据库安全防护技术 - SQL注入防御
SQL注入是指通过把特定SQL命令插入到HTTP请求中,达到欺骗服务器以执行恶意SQL命令目的,从而窃取、篡改或者恶意删除数据。传统上,防护SQL注入主要在两个阶段进行。
第一是在Web服务源码编写阶段进行防护,开发人员在编写源码时遵循防范SQL注入的经验性指导原则,使用“检查参数格式”,“过滤特殊字符”,“绑定参数”等方式使得SQL注入失效。但是这种方式的有效性取决于开发人员的安全防范知识水平的高低,往往容易留下不易察觉的漏洞。
第二是在Web服务运行阶段进行防护,也就是部署入侵检测系统。传统的入侵检测系统有两种:基于程序分析的SQL注入检测系统。对Web服务程序进行分析,包括静态分析和动态分析两种策略。静态分析是分析源代码,找出潜在的安全漏洞。动态分析是在程序运行时完成,通过编写特定的测试用例来测试程序。缺点是必须获知Web应用的源代码,而且分析覆盖率不能得到保障,容易出现漏测。基于特征匹配的SQL注入方法。建立当前数据库服务的特征语法树,从中提取出合法的SQL语句语法树,然后进行模式匹配,如果被检测的SQL语句不符合合法模式就产生警告。但是这种方法需要预先知道源代码,并且进行大量人工工作来分析出合法SQL模式。或者通过分析大量SQL注入实例,生成非法SQL语句的匹配模型,然后对实际运行的SQL语句进行模式匹配,如果被检测SQL语句符合非法模型,则判定为SQL注入。这种方法无需获知应用的源代码。但是这种方法的成功率高度依赖非法模型的全面性和准确性。需要耗费大量人工分析,并且容易出现检测遗漏。
基于机器学习的SQL注入检测技术。 其主要方法步骤是:
从HTTP请求中提取SQL查询语句,并进行预处理。
然后通过词法分析和语法分析生成语法查询树。
对语法树进行特征提取,提取的特征如语法分析树的高度,节点个数,样本长度,空格、数字、特殊字符占原始样本比例和语法树子树个数等。
使用有监督学习算法对样本进行训练学习,形成一个SVM二分类器,并用该分类器对SQL语句进行检测。
该方法的缺点在于需要人工进行特征分析,忽略了语法树所带来的语义结构特殊关系。生成的语法树节点中,树节点之间的连接存在潜在语义关系,然而原始方法中忽略了这一关系。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 数据库安全防护技术 - SQL注入防御
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm