论文部分内容阅读
伴随着计算机网络的快速发展,基于B/S架构的Web应用程序逐渐替代了C/S架构的应用程序,随之而来的Web应用程序的安全性也成为相关学者研究的热点。SQL注入攻击是影响Web应用程序安全性的最严重的问题之一,因此有效的检测和防御SQL注入攻击对于保证Web应用程序的安全性具有十分重要的现实意义。传统的防御SQL注入的方法有指令随机化,渗透测试,输入过滤等。这些方法要么不能防御所有类型的SQL注入攻击,要么存在的极高的误报率和漏报率,要么需要服务器和数据库代理的支持,部署十分繁杂。针对传统的防御方法的不足,本文在结合静态分析和动态检测技术的基础上提出了一种基于静态分析的防范SQL注入过滤模块的设计与实现方法。通过静态分析Web应用程序的源文件,提取用户输入到执行参数的构造路径,生成策略文档。动态执行时替换策略文档中的输入参数为用户输入值,比较得到的SQL语句和原SQL语句在语义和结构上的异同判断是否存在SQL注入攻击。过滤模块的设计实现基于Java语言,不需要复杂的服务器或者数据库配置,而且能够防范各种SQL注入攻击类型,有效的提高了SQL注入攻击检测的准确性,而且开销也不大。实验结果表明该方法有效可行,增加了过滤模块后对系统的性能影响不大。与同类相关工作相比,具有一定的优势性。