XSS攻击方法和防御技术研究
2019-05-24涂风涛杨晨霞
涂风涛 杨晨霞
摘要:XSS漏洞可以分为三种类型:反射型、持久型和基于DOM的XSS漏洞。该文主要研究这三种不同类型漏洞的产生原因、攻击方法和防御技术。
关键词:反射型XSS;持久型XSS;基于DOM的XSS
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)11-0061-03
Abstract: There are three types of XSS vulnerabilities: reflection vulnerabilities, persistent vulnerabilities, and DOM-based XSS vulnerabilities. This article focuses on the causes, attack methods, and defense techniques of these three different types of vulnerabilities.
Key words: reflection XSS;persistent XSS;DOM-based XSS
1 背景
一般的Web程序攻擊以服务器应用程序为目标,目的是执行非授权动作或者非法访问数据。而跨站脚本攻击(Cross Site Script,XSS),它属于另外一种类型,因为它的攻击目标是Web程序的其他用户。XSS是在Web程序中发现的最为普遍的漏洞,它常常与其他漏洞一起造成破坏性的后果,有时甚至可以演变为了某种自我繁殖的蠕虫。
2 反射型XSS
如果Web程序用动态页面向用户显示错误消息,就容易造成反射型XSS漏洞。以下给出了低安全性反射型漏洞的代码示例,该代码接收请求参数“_GET[‘name]”并且在返回页面中直接写入该参数的值。
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// 将用户的输入置入输出页面
$html .= '
Hello ' . $_GET[ 'name' ] . '';
}
如果用户输入“yiwen”,Web程序返回“Hello yiwen”的页面。但是当攻击者尝试输入“yiwen