XSS 跨站脚本 (Cross Site Scripting):
概念:
XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。
实现方式:
起初,这种攻击通过跨域来实现的,所以叫“跨域脚本”。但是发展到现在,往 HTML 文件中注入恶意代码的方式越来越多了.
作用:
1.窃取Cookie信息
2.监听用户行为
3.修改DOM来伪造页面, 比如登陆窗口
4.页面内生成悬浮广告
恶意脚本的注入方式:
1.存储型XSS攻击
攻击流程:
▪首先黑客利用站点漏洞将一段恶意 JavaScript 代码提交到网站的数据库中;
▪然后用户向网站请求包含了恶意 JavaScript 脚本的页面;
▪当用户浏览该页面的时候,恶意脚本就会将用户的 Cookie 信息等数据上传到服务器。
举例: 比如2015年的喜马拉雅爆出的存储型XSS攻击, 黑客通过设置用户专辑名称的方式导入恶意程序, 从而当其他用户打开专辑时, 就可以获取用户的Cookie等数据
2.反射型XSS攻击
攻击流程:
用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端
举例: 黑客通过 QQ 群或者邮件等渠道诱导用户去点击这些恶意链接
注意: 服务器不会存储反射型XSS攻击的恶意脚本
3.基于DOM的XSS攻击
攻击流程:
基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的. 在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。
举例: 比如通过网络劫持在页面传输过程中修改 HTML 页面的内容. 通过WiFi路由器劫持, 通过本地恶意软件劫持.
阻止XSS攻击:
1.服务器对输入脚本进行过滤或者转码
比如把传输过来的含有
参考: 极客时间-浏览器工作原理与实践