XSS(Cross Site Script)是一种注入型的攻击,在可信的网站注入执行的脚本。具体而言,攻击者使用浏览器端的脚本如javascript,执行恶意的代码,对web应用发起攻击。
XSS攻击发生的条件
- 数据从一个不可信的源进入web应用,大多数情况是web请求
- 数据包含恶意的可执行代码,并且web应用没有进行校验
XSS的类型
-
反射型XSS
将用户的输入作为响应返回的一部分,例如错误信息,搜索结果等,返回给前端(直接返回服务器端没有存储)。用户输入中包含恶意执行代码,前端执行恶意脚本。 -
存储型XSS
用户的输入存储到服务器端数据,之后同样输出到前端。用户输入中包含恶意可执行代码,前端自动执行恶意脚本。 -
DOM Based XSS
用户的输入包括恶意可执行代码,前端自动执行后,修改页面的DOM环境,造成客户端执行时,不可预期的行为。