论文部分内容阅读
随着互联网的不断发展,Web平台逐渐发展为由用户主导的互联网模式,但由此引发了XSS攻击和CSRF攻击等Web应用安全隐患。Django作为Python主流Web开发框架,由于其高效性和便捷性,大量Web应用正向Django迁移。然而,原生Django没能为用其开发的Web应用提供有效的XSS和CSRF防御能力。原生Django的XSS防御设计的过于简单,不能适应富文本应用场景以及过分依赖模板变量。而原生Django的CSRF防御又设计的过于复杂,学习使用成本高且不能针对GET和HEAD请求进行防御。本文首先分析了原生Django在XSS和CSRF防御上的若干缺陷,然后针对这些缺陷,并从功能与性能方面综合考虑,为Django设计并实现了提供XSS防御和CSRF防御功能的Web安全防御系统。并通过Django的中间件高度解耦合,对于已经用Django开发的Web应用来说,只需修改少量代码,即可启用该防御系统。防御系统主要由初始化模块、XSS防御模块、CSRF防御模块、日志管理模块和中间件接口五个部分组成。而防御系统的重点在于XSS防御模块,因为凡是有XSS安全漏洞的地方,就一定会有CSRF安全漏洞。因此,强有力的XSS防御功能是CSRF防御功能正常进行的基本保障。XSS防御主要有四个步骤:无效注释过滤,缺陷标签修复,危险标签及属性过滤和普通文本中特殊字符转义。并在此基础上,利用Anti CSRF Token策略实现CSRF防御功能。最后搭建测试环境,从功能和性能两个方面对防御系统进行测试,并比对原生Django的相应功能。实验结果表明,防御系统能在不造成过多响应延迟的基础上,有效针对XSS攻击和CSRF攻击进行防御,并解决原生Django的在XSS防御和CSRF防御上的不足,符合功能和性能需求。