XSS:Cross Site Scripting【跨站脚本攻击】
一、概念
- 黑客向HTML文件或者DOM中添加恶意脚本
- 从而在用户浏览页面时利用插入的恶意代码,对用户实施攻击
二、分类
- 存储型XSS攻击
- 黑客向存在漏洞的服务器插入一段恶意JavaScript代码
- 当用户向服务器请求资源的时候就会请求到该恶意JavaScript脚本。
- 用户浏览页面的时候用户的Cookie等信息就会被上传到服务器。
- 黑客拿到了用户的 cookie等信息后,就可以在别的设备登陆进行一些恶意操作
- 反射型XSS攻击
- 用户将一段包含有恶意代码的请求提交给web服务器
- web服务器又将这段恶意代码反射给浏览器端。
- 常见的有QQ群和QQ邮件中一些诱导用户点击的恶意链接
- 基于DOM的XSS攻击
- 基于DOM的XSS攻击是不涉及到web服务器的
- 而是黑客通过某些手段将恶意代码直接注入到用户的页面中。
- 有可能是通过网络劫持在页面传输过程中修改了HTML页面的内容。
- 或者通过本地的恶意软件劫 持等方法。
- 他们共同的特点是在web资源传输过程中或者用户使用页面过程中修改了web页面的数据。
三、防止XSS攻击
1、服务器端对输入的脚本信息进行过滤或者编码
过滤是将标签内的内容过滤掉,这样恶意的JavaScript代码也就无法执行了,转码是将"<",">"进行转码
2、充分利用CSP等策略【内容安全策略】
核心思想:让服务器决定浏览器能够加载哪些资源
CSP的功能
限制加载其他域下的资源文件,使得即使注入了恶意脚本也无法被执行
禁止向第三方提交信息,这样即使被注入了恶意代码,也无法将用户的Cookie发送给恶意服务器
禁止执行内联脚本和未授权脚本
还提供了上报机制,可以帮助我们更快地发现XSS攻击
3、设置HttpOnly
- 服务器可以将cookie设置为HttpOnly,HttpOnly可以保障Cookie只在http连接中被获取
- 这样的话恶意的JavaScript代码就无法获取到用户的cookie了。
参考地址:前端面试题XSS攻击和防御 - 哔哩哔哩 (bilibili.com)
标签:XSS,攻击,恶意代码,用户,恶意,防止,服务器 From: https://www.cnblogs.com/le-cheng/p/17498764.html