网站首页 > 技术文章 正文
今天主要给大家分享一下web安全这方面的知识点,对于一个web从业者来讲,不得不说这是一个非常有份量的课题,近几年网络上频繁出现,相关安全的危害问题,所有以今天主要是总结一下web相关的安全攻防知识点,希望对看到本篇文章的你有所帮助.
本文主要内容是分析几种常见攻击类型及防御的手法,如果你对相关安全问题有所了解,那么主要还是让编码设计的过程中时时刻刻相到这一点,在实现相关存在安全问题的代码块时,进行反复测试每一个细节,防范于未然.
先来了解一下常见的web安全攻防操作吧!
一、XXS
首先说一下最常见的XSS: XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容
XSS 的原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。XSS 的攻击方式千变万化,但还是可以大致细分为几种类型。
非持久型 XSS
非持久型 XSS 漏洞,也叫反射型 XSS 漏洞,一般是通过给别人发送带有恶意脚本代码参数的 URL,当 URL 地址被打开时,特有的恶意代码参数被 HTML 解析、执行。
例如:你的 Web 页面中包含有以下代码:
<select>
<script>
document.write(''
+ '<option value=1>'
+ location.href.substring(location.href.indexOf('default=') + 10)
+ '</option>'
);
document.write('<option value=2>源码时代</option>');
</script>
</select>
攻击者可以直接通过类似以下的 URL http://www.xxx.com/xx.php?default=<script>alert(document.cookie)</script> 注入可执行的脚本代码
漏洞攻击的几点特征:
- 即时性,可以不经过服务器存储,直接通过 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代码
<div> 我了个去哦</div>
用UTF-7表示为:
+ADw-div+AD4- +YhFOhk4qU7v/AQ- +Adw-/div+AD4
同样的,来看一下js吧
<script> alert("xss") </script>
用UTF-7表示为:
+ADw-script+AD4- alert(+ACI-xss+ACI-) +ADw-/script+AD4-
防止方法:
1.记住指定 <meta charset="utf-8">
2.XML 中不仅要指定字符集为 utf-8,而且标签要闭合
网址跳转 XSS
在有一些特定的场景中,后端会使用url的302定向操作,把当前的网页使用302定向到其它页面url上进行跳转,如果当前被定向的页面url正好带有用户隐私信息,可能会被恶意者利用,进行恶意跳转网页
防止方法:
1.对待跳转的 url加入白名单或者设置指定规则来进行过滤
2后端注意对敏感信息的保护, 比如 cookie 使用来源验证。
总结:
以上为本期web安全分享内容,主要是讲解XSS常用攻防技巧,如有相关兴趣有困扰的小伙伴们可以进行技术交流,下期分享<web前端安全攻击及防御技巧系列(二) >,请关注我,关注更多web安全相关内容!
猜你喜欢
- 2024-09-30 web前端安全规范 web前端网络安全
- 2024-09-30 浅谈 Web 安全 web安全有哪些方面
- 2024-09-30 记一笔前端需要关注的安全知识 前端安全规范
- 2024-09-30 8大前端安全问题(上) 前端安全规范
- 2024-09-30 深入HTTPS协议:前端安全基础解析 详解https协议
- 2024-09-30 前端面试—安全类 前端安全方面面试题
- 2024-09-30 「基本功」前端安全系列之二:如何防止CSRF攻击?
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)