ToB企服应用市场:ToB评测及商务社交产业平台

标题: 前端安全系列(一):如何防止XSS攻击? [打印本页]

作者: 圆咕噜咕噜    时间: 2024-7-19 15:07
标题: 前端安全系列(一):如何防止XSS攻击?
一、什么是XSS

Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的欣赏器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。
XSS 的本质是:恶意代码未经过滤,与网站正常的代码混在一起;欣赏器无法分辨哪些脚本是可信的,导致恶意脚本被执行。
而由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,或者利用这些信息冒充用户向网站发起攻击者定义的请求。
   【逐一帮助安全学习,所有资源获取处逐一】
  ①网络安全学习门路
  ②20份渗出测试电子书
  ③安全攻防357页笔记
  ④50份安全攻防口试指南
  ⑤安全红队渗出工具包
  ⑥网络安全必备书籍
  ⑦100个漏洞实战案例
  ⑧安全大厂内部视频资源
  ⑨历年CTF夺旗赛题解析
  二、XSS注入方法


总之,如果开发者没有将用户输入的文本举行合适的过滤,就贸然插入到 HTML 中,这很轻易造成注入漏洞。攻击者可以利用漏洞,构造出恶意的代码指令,进而利用恶意代码危害数据安全。
三、XSS分类

根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种。
|范例|存储区|插入点|

存储区:恶意代码存放的位置。
插入点:由谁取得恶意代码,并插入到网页上。
3.1 存储型 XSS

存储型XSS的攻击步骤:
这种攻击常见于带有效户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。
3.2 反射型XSS

反射型 XSS 的攻击步骤:
反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库里,反射型 XSS 的恶意代码存在 URL 里。
反射型 XSS 漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。
由于需要用户自动打开恶意的 URL 才能生效,攻击者往往会联合多种手段诱导用户点击。
POST 的内容也可以触发反射型 XSS,只不外其触发条件比较苛刻(需要构造表单提交页面,并引导用户点击),所以非常少见。
3.3 DOM型XSS

DOM 型 XSS 的攻击步骤:
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由欣赏器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。
四、XSS攻击的防备

通过前面的先容可以得知,XSS 攻击有两大要素:
针对第一个要素:我们是否能够在用户输入的过程,过滤掉用户输入的恶意代码呢?答案是不可行的。既然输入过滤并非完全可靠,我们就要通过“防止欣赏器执行恶意代码”来防范 XSS。这部分分为两类:

4.1 纯前端渲染

纯前端渲染的过程:
在纯前端渲染中,我们会明确的告诉欣赏器:下面要设置的内容是文本(.innerText),照旧属性(.setAttribute),照旧样式(.style)等等。欣赏器不会被轻易的被欺骗,执行预期外的代码了。
但纯前端渲染还需注意制止 DOM 型 XSS 漏洞(例如 onload 事件和 href 中的 javascript:xxx 等,请参考下文”防备 DOM 型 XSS 攻击“部分)。
在许多内部、管理系统中,采用纯前端渲染是非常合适的。但对于性能要求高,或有 SEO 需求的页面,我们仍然要面临拼接 HTML 的题目。
4.2 转义 HTML

如果拼接 HTML 是必要的,就需要采用合适的转义库,对 HTML 模板各处插入点举行充分的转义。
常用的模板引擎,如 doT.js、ejs、FreeMarker 等,对于 HTML 转义通常只有一个规则,就是把 & < > " ' / 这几个字符转义掉,确实能起到肯定的 XSS 防护作用,但并不完善:
|XSS 安全漏洞 | 简单转义是否有防护作用|

所以要完善 XSS 防护措施,我们要利用更完善更过细的转义战略。
例如 Java 工程里,常用的转义库为 org.owasp.encoder
4.3 Content Security Policy

严酷的 CSP 在 XSS 的防范中可以起到以下的作用:

4.4 输入内容长度控制

对于不受信任的输入,都应该限定一个合理的长度。虽然无法完全防止 XSS 发生,但可以增加 XSS 攻击的难度。
4.5 HTTP-only Cookie

禁止 JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注入后也无法盗取此 Cookie。
4.6 验证码

防止脚本冒充用户提交伤害操作。
五、XSS的检测

除了手动检测之外,还可以利用自动扫描工具探求 XSS 漏洞,例如 Arachni**、Mozilla HTTP Observatory*、w3af**等。
总结

虽然很难通过技能手段完全制止 XSS,但我们可以总结以下原则减少漏洞的产生:

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习门路图


攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的门路图,如果你能学完它们,你去就业和接私活完全没有题目。
2.视频教程

网上虽然也有许多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面门路图的每一个知识点,我都有配套的视频解说。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗出测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技能文档和电子书

技能文档也是我自己整理的,包括我加入大型网安举措、CTF和挖SRC漏洞的经验和技能要点,电子书也有200多本,由于内容的敏感性,我就不逐一展示了。
4.工具包、口试题和源码

“工欲善其事必先利其器”我为大家总结出了最受接待的几十款款黑客工具。涉及范围重要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感爱好的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
这些题目都是大家在口试深信服、奇安信、腾讯或者其它大厂口试时经常遇到的,如果大家有好的题目或者好的见解接待分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表现更加易懂。
内容概要:包括 内网、操作系统、协议、渗出测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包罗、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,如果你对网络安全入门感爱好,需要的话可以在下方

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4