广州前端学习培训:常见安全攻击及防御技巧系列,下面和千锋广州小编一起来看看吧。
本文主要内容是分析几种常见攻击类型及防御的手法,如果你对相关安全问题有所了解,那么主要还是让编码设计的过程中时时刻刻相到这一点,在实现相关存在安全问题的代码块时,进行反复测试每一个细节,防范于未然。
先来了解一下常见的web安全攻防操作吧!
一、XXS
首先说一下最常见的XSS: XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容
XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。XSS 的攻击方式千变万化,但还是可以大致细分为几种类型。
非持久型 XSS
非持久型 XSS 漏洞,也叫反射型 XSS 漏洞,一般是通过给别人发送带有恶意脚本代码参数的 URL,当 URL 地址被打开时,特有的恶意代码参数被 HTML 解析、执行。
WEB前端常见安全攻击及防御技巧系列(一)
例如:你的 Web 页面中包含有以下代码:
攻击者可以直接通过类似以下的 URL http://www.xxx.com/xx.php?default= 注入可执行的脚本代码
漏洞攻击的几点特征:
即时性,可以不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,获取到用户隐私数据
触发时需要诱骗点击链接
反馈率低,所以较难发现和响应修复
盗取用户敏感保密信息
防止漏洞攻击必做以下几个操作:
1 . 所有web中的数据都通过服务器端操作。
2 . 尽量避免通过 url,document.referrer,document.forms 等获取数据直接进行渲染操作。
3 . 避免使用 eval, new Function(),document.write(),document.writeln(),window.setInterval(),window.setTimeout(),
innerHTML,document.creteElement() 等可以执行字符串的操作方法。
4 . 如果避免不了,可以对获取到的重要字符串数据进行escape 转义编码操作。目的是为了把特殊符号换成转义字符,让相应的代码执行不了
持久型 XSS
持久型 XSS 漏洞,也被称为存储型 XSS 漏洞,一般存在于 Form 表单提交等交互功能,如发帖留言,提交文本信息等,攻击者利用的 XSS 漏洞,将恶意代码经正常功能提交进入数据库持久保存起来,当前端页面获得后端从数据库中读出的注入代码时,正好将有恶意的代码渲染执行了。
其操作方式和非持久型 XSS 漏洞类似,只不过持久型是来源于后端从数据库中读出来的数据。
此攻击需要同时满足以下几个条件:
1.POST提交表单后端没做转义直接存入数据库。
2.后端取出数据直接输出给前端。
3.前端获取后端的数据没做转义直接渲染成DOM。
持久型 XSS 有以下几个特点 :
1.持久性比较强
2.危害面广
3.盗取用户敏感私密信息
防止办法:
为了防止持久性漏洞,需要前后端共同努力,后端在入库数据时,尽量把所有的数据进行转义处理,输出给前端的数据也需要进行转义处理,当然前端也需要在输出时需要把渲染数据转义
字符集的 XSS
由于浏览器对网页中设置的字符集解析不一致,可以使用写相关解析规则,或绕过相关规则来实现注入的操作,这叫基于字符集的XSS
如:
UTF-7 是可以将所有的 unicode 通过 7bit 来表示的一种字符集。早期多数被利用在邮件环境当中,但现在已经从 Unicode 规格中移除。这个字符集为了通过 7bit 来表示所有的文字, 除去数字和一部分的符号,其它的部分将都以 base64 编码为基础的方式呈现
HTML代码
我了个去哦
用UTF-7表示为:
+ADw-div+AD4- +YhFOhk4qU7v/AQ- +Adw-/div+AD4
同样的,来看一下js吧
用UTF-7表示为:
+ADw-script+AD4- alert(+ACI-xss+ACI-) +ADw-/script+AD4-
防止方法:
1.记住指定
2.XML 中不仅要指定字符集为 utf-8,而且标签要闭合
网址跳转 XSS
在有一些特定的场景中,后端会使用url的302定向操作,把当前的网页使用302定向到其它页面url上进行跳转,如果当前被定向的页面url正好带有用户隐私信息,可能会被恶意者利用,进行恶意跳转网页
防止方法:
1.对待跳转的 url加入白名单或者设置指定规则来进行过滤
2后端注意对敏感信息的保护, 比如 cookie 使用来源验证。
如果你对前端开发感兴趣,可以来千锋广州校区免费试听,开启你的编程之旅。
2022-04-13 广州千锋教育发布了 《如何甄别广州Java培训机构哪一家比较好?》的文章
2021-11-22 广州千锋教育发布了 《广州HTML5开发培训哪家靠谱?前端职责是什么?》的文章
2021-11-22 广州千锋教育发布了 《广州学Java好找工作吗?自学和培训的区别在哪?》的文章
2021-11-22 广州千锋教育发布了 《如何选择好广州Web前端培训机构?给你3点建议》的文章
2021-11-19 广州千锋教育发布了 《广州Java学习:没有基础该如何学习Java?》的文章