基于敏感字符的SQL注入攻击防御方法
SQL Injection Prevention Based on Sensitive Characters作者机构:北京大学计算机科学技术研究所北京100080 加州大学伯克利分校加利福尼亚伯克利94720 百度美国有限责任公司加利福尼亚森尼韦尔94089
出 版 物:《计算机研究与发展》 (Journal of Computer Research and Development)
年 卷 期:2016年第53卷第10期
页 面:2262-2276页
核心收录:
学科分类:0839[工学-网络空间安全] 08[工学]
基 金:国家自然科学基金项目(61572149 61402125)~~
主 题:SQL注入攻击 可信敏感字符 动态污点分析 积极污点分析 编码转换
摘 要:SQL注入攻击历史悠久,其检测机制也研究甚广.现有的研究利用污点分析(taint analysis)结合SQL语句语法分析进行SQL注入攻击检测,但由于需要修改Web应用程序执行引擎来标记和跟踪污点信息,难以部署,并且时间和空间性能损失过大.通过分析SQL注入攻击机理,提出一种基于敏感字符的SQL注入攻击防御方法.1)仅对来自常量字符串的可信敏感字符进行积极污点标记;2)无需修改Web应用程序执行引擎,利用编码转换将污点信息直接存储在可信敏感字符的编码值中,动态跟踪其在程序中的传播;3)无需SQL语句语法分析,只需利用编码值判断SQL语句中敏感字符的来源、转义非可信敏感字符,即可防御SQL注入攻击.基于PHP的Zend引擎实现了系统原型PHPGate,以插件方式实现、易部署.实验证明:PHPGate可精确防御SQL注入攻击,且有效提升污点传播效率,页面应答的时间开销不超过1.6%.