XSS(Cross-Site Scripting) 跨站脚本攻击
跨站脚本攻击(Cross-Site Scripting, XSS)
是指通过存在安全漏洞的Web网站注册用户的浏览器
内运行的非法的HTML标签
或JavaScript
进行的一种攻击。动态创建的HTML部分
有可能隐藏着安全漏洞。就这样,攻击者编写脚本设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。
XSS类型
1. 非持久型 XSS(反射型 XSS)
反射型 XSS 只是简单地把用户输入的数据 “反射” 给浏览器,这种攻击方式往往需要攻击者诱使用户点击一个恶意链接
,或者提交一个表单
,或者进入一个恶意网站时,注入脚本进入被攻击者的网站。当用户点击恶意链接时,页面跳转到攻击者预先准备的页面,会发现在攻击者的页面执行了 js 脚本
。攻击者可以注入任意的恶意脚本进行攻击,可能注入恶作剧脚本
,或者注入能获取用户隐私数据(如cookie)的脚本
,这取决于攻击者的目的。
防御策略:
- Web 页面渲染的所有内容或者
渲染的数据
都必须来自于服务端。 - 尽量不要从 URL,document.referrer,document.forms 等这种 DOM API 中获取数据直接渲染。
- 尽量不要使用
eval