一、什么是XSS攻击;
CSS攻击是一种代码注入攻击;在网站恶意注入脚本;在用户浏览器上获取用户的信息;
XSS攻击能搞起来的原因是;网站没有针对代码进行过滤;把XSS脚本混合在代码中,使得浏览器无法识别是正常的代码还是XSS代码;
通过XSS攻击可以进行的操作是:
1、获取页面的数据;cookie、session、DOM等;
2、流量劫持;(将连接指向某个想要指定的网站);
3、破坏当前网页的结构;
4、发送请求占用服务器资源、使得用户无法访问服务器;
二、XSS攻击的攻击类型:
XSS攻击可以分为存储型、反射型、DOM型;
1、存储型:
存储型指的是恶意脚本会存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回并执行。
2、反射型:
反射型指的是攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击。
3、DOM型;
DOM 型指的通过修改页面的 DOM 节点形成的 XSS。
对应三种类型的攻击步骤:
1、存储型XSS攻击步骤;
- 攻击者将恶意代码提交到⽬标⽹站的数据库中。
- ⽤户打开⽬标⽹站时,⽹站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
- ⽤户浏览器接收到响应后解析执⾏,混在其中的恶意代码也被执⾏。
- 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。
这种攻击常⻅于带有⽤户保存数据的⽹站功能,如论坛发帖、商品评论、⽤户私信等。
2、反射型XSS攻击步骤:
- 攻击者构造出特殊的 URL,其中包含恶意代码。
- ⽤户打开带有恶意代码的 URL 时,⽹站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
- ⽤户浏览器接收到响应后解析执⾏,混在其中的恶意代码也被执⾏。
- 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。
反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库⾥,反射型 XSS 的恶意代码存在 URL ⾥。反射型 XSS 漏洞常⻅于通过 URL 传递参数的功能,如⽹站搜索、跳转等。 由于需要⽤户主动打开恶意的 URL 才能⽣效,攻击者往往会结合多种⼿段诱导⽤户点击。
3、DOM型XSS攻击;
1、攻击者构造出特殊的 URL,其中包含恶意代码。
2、⽤户打开带有恶意代码的 URL。
3、⽤户浏览器接收到响应后解析执⾏,前端 JavaScript 取出 URL 中的恶意代码并执⾏。
4、恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执⾏恶意代码由浏览器端完成,属于前端JavaScript ⾃身的安全漏洞,⽽其他两种 XSS 都属于服务端的安全漏洞。
三、如何防御XSS攻击;
可以看到XSS危害如此之大, 那么在开发网站时就要做好防御措施,具体措施如下:
- 可以从浏览器的执行来进行预防,一种是使用纯前端的方式,不用服务器端拼接后返回(不使用服务端渲染)。另一种是对需要插入到 HTML 中的代码做好充分的转义。对于 DOM 型的攻击,主要是前端脚本的不可靠而造成的,对于数据获取渲染和字符串拼接的时候应该对可能出现的恶意代码情况进行判断。
- 使用 CSP ,CSP 的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行,从而防止恶意代码的注入攻击。
四、什么是CSRF攻击;
CSRF攻击类型:
get类型利用网站中的img标签构建请求;加载网站就会触发;
post类型,构建一个表单然后默认隐藏, 当用户进入页面触发提交;
连接类型;例如a标签诱导用户去点击;
五、CSRF的防御:
六、什么是中间人攻击? 如何防范中间人攻击(MITM?
中间人攻击的类型:
七:如何防止中间人攻击;
八、有哪些可以引起前端安全问题?
九、网络劫持有哪几种,如何防范?
标签:XSS,浏览器,攻击,恶意代码,防护,URL,攻击者 From: https://www.cnblogs.com/gaowq001/p/17101538.html