1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

XSS攻击实践

前言

由于浏览器同源策略,限制了页面无法引用第三方资源,无法请求不同源下面的资源,影响了web的发展,所以浏览器出让了一些安全策略来满足web的发展。通过CSP安全策略来保证浏览器可以安全的加载第三方资源;通过CORS允许浏览器跨域请求;通过PostMessage来操作DOM但这些策略也给了黑客攻击我们的站点的机会。web站点常见的攻击方式包括:XSS攻击,CSRF攻击、Sql注入攻击等。

XSS攻击实践

XSS攻击

1、什么是XSS攻击
XSS攻击(跨站脚本攻击),黑客通过网站的漏洞,将恶意脚本插入Html页面,当用户打开站点时,由于恶意脚本和站点代码拥有同样的执行权限,恶意脚本就有可能篡改站点内容,窃取用户信息发送到第三方服务器。恶意代码一般会做下面这些攻击:获取用户Cookies,修改用户DOM,伪造登录页面,生成浮窗广告,监听用户输入。

2、XSS攻击的分类
XSS攻击常被分为三类:存储型攻击、反射型攻击、基于DOM的XSS攻击。前两种一般要经过服务器,所以后端研发更需要注意,而最后一种没有经过服务器,是需要前端注意避免的。

3、其他相关案例
页面读取html显示,后端通过抓取邮件内容,生成html,给到前端展示。由于邮件中可能存在一些非法标签,浏览器在解析中无法识别,就导致浏览器crash,常常使用插件或者js过滤,转译等。
给朋友发送一个页面的脚本,其中alert了6次,并且获取了浏览器Cookies,如果将其中的攻击脚本插入用户的页面中,然后向第三方服务器发送cookies,这就构成了XSS攻击。

模拟存储型攻击

我们来模拟下存储型攻击

1、前期准备
一个恶意的脚本这里用Express搭建,端口9000
正常站点另外启动一个http服务器,为我们的正常站点,端口8080。假设,这个的网站存在漏洞,没有过滤参数,恶意脚本上传到了服务器。

2、正常站点的另一个页面
当用户打开另一个页面,可以加载了前一步录入的内容,我们发现恶意脚本已经执行。

3、恶意脚本执行

4、恶意服务后端获取当前站点Cookies

防止XSS攻击的办法

阻止XSS攻击,要先知道XSS攻击的原理:一般分为两个步骤。
第一步:黑客找到站点的漏洞,想站点插入恶意脚本。
第二步:读取站点的信息,发送到第三方服务器。

XSS攻击主要有以下方法注入:
html中的script脚本、可以请求第三方数据的地方(标签的属性、Img的src属性、a标签的href属性、background:url())、js脚本的拼接、特殊字符
对于后端来说,主要有以下几处常常不可信:
用户输入内容、url参数、post参数、第三方的链接、referere、Cookies

1、过滤关键字
对于存储型XSS攻击和反射型XSS攻击,二者由于都需要过服务器,那么只要后端开发在入库的时候最敏感代码进行过滤进行过滤,就可以避免大部分的XSS攻击。

2、前端框架和组件的使用
目前对于前端的大部分组件(富文本组件)和常见的Vue、React框架都对展示的数据,只会展示以字符串进行展示。对于有可能嵌入恶意代码的部分也贴心的增加了提示,这些可能导致XSS攻击的地方,框架都给了显著的提示,所以在页面显示这些不可控的内容前要进行过滤。

3、严格执行CSP策略
设置CSP,现在站点加载或发送请求到第三方服务器。

4、给Cookie设置HttpOnly
给cookies设置了该属性,当前页面重要的Cookie就无法通过js读取,这样黑客也就无法获取用户的信息。

作者:前端中后台
链接:https://juejin.cn/post/7041435485310287886
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7401.html