一、什么是XSS攻击
跨站脚本攻击(Cross-site scripting,XSS)是一种注入型攻击,攻击者通过在目标网站上注入恶意的脚本,使之在用户的浏览器上运行。利用这些脚本,攻击者可获取用户的敏感信息,如Cookie、SessionID等。
XSS的本质是:恶意代码未经过滤,与网站正常的代码混在一起,浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。
在处理输入时,以下内容都不可信:
- 来自用户的UGC信息(UGC,即用户生成内容)
- 来自第三方的链接
- URL参数
- POST参数
- Referer(可能来自不可信的源)(详细参考HTTP Referer 教程)
- Cookie(可能来自其他子域注入)
二、XSS分类
XSS 攻击可以分为3类:存储型(持久型)、反射型(非持久型)、DOM 型。
类型 | 存储区(恶意代码存放的位置) | 插入点(由谁取得恶意代码,并插入到网页上) |
---|---|---|
存储型 XSS | 后端数据库 | HT |