聊聊大前端网络安全那些事

简介:

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


11

网络安全对前端童鞋来说大多数时候都是听其有之,闻之则无,毕竟在现如今前端如火如荼的时代,大多数东西日益成熟,开箱即用,云服务、框架等已经帮我们做了安全方面的防范,不需要我们去太过于关心前端网络安全,作为一个前端爱好者,最近温习一下这部分知识,做了个简单的总结,顺道呈现给各位看官,请注意查收。

xss攻击

Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。

根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种

1.1 存储型攻击

存储型攻击常发生在微博论坛等用户发帖、提交文章评论等地方。

1.将恶意代码提交到数据库

2.数据库将其保存

3.他用户查看帖子或者评论

4.服务端返回恶意代码并被拼接到客户端页面

5.恶意代码可能通过自执行或者用户点击执行来弹出广告或者获取用户的cookie等个人隐私并上报到攻击者数据库

1.2 反射型攻击

反射型攻击主要发生在一些带有诱导性的链接的按钮邮件等。

1.攻击者在一些链接的参数中加入恶意代码并诱导用户点击

2.用户通过点击将请求参数传入服务端

3.服务端获取参数并拼接返回给客户端

4.客户端执行恶意代码冒充用户进行权限操作或者盗取用户的cookie等个人隐私并上报攻击者数据库

1.3 DOM型攻击

1.攻击者构造出特殊的 URL,其中包含恶意代码。

2.用户打开带有恶意代码的 URL。

3.用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。

4.恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。

DOM型和反射性都是通过诱导用户点击链接执行,并且都是临时型的,但是反射型属于服务端安全漏洞而DOM型属于客户端安全漏洞。

2.如何防范xss攻击

  • 客户端对用户输入的内容进行安全符转义,服务端对上交内容进行安全转义
  • 服务端渲染开启模板引擎自带的 HTML 转义功能。
  • 避免内联事件,尽量不要使用 onLoad="onload('{{data}}')"、onClick="go('{{action}}')" 这种拼接内联事件的写法。在 JavaScript 中通过 .addEventlistener() 事件绑定会更安全。
  • 避免拼接 HTML,前端采用拼接 HTML 的方法比较危险,如果框架允许,使用 createElement、setAttribute 之类的方法实现。或者采用比较成熟的渲染框架,如 Vue/React 等。
  • 时刻保持警惕在插入位置为 DOM 属性、链接等位置时,要打起精神,严加防范。
  • 通过 CSP、输入长度配置、接口安全措施等方法,增加攻击的难度,降低攻击的后果。
  • 主动检测和发现,可使用 XSS 攻击字符串和自动扫描工具寻找潜在的 XSS 漏洞。
  • 尽量避免三方跨域提交内容到服务端
  • HTTP-only Cookie: 禁止 JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注入后也无法窃取此 Cookie。

验证码:防止脚本冒充用户提交危险操作。

CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

1.1 主动型攻击

1.受害者访问a.com并在自己浏览器留下a.com的登录态

2.攻击者诱导受害者访问三方网站b.com

3.三方网站b.com植有访问a.com接口的恶意代码(删除/增加/修改等)

4.受害者点击b.com时候,b.com带着a.com的登陆凭证冒充受害用户执行对a.com的恶意操作

1.2 被动型攻击

1.攻击者在a.com发布带有恶意链接的帖子或者评论(提交对a.com带有增删改的诱导型img/form/a标签)

2.当其他拥有登录态的受害者点击该评论的恶意链接冒用受害者登录凭证发起攻击

CSRF主要是冒用受害者登录凭证发起恶意的增删改并不会窃取受害者隐私信息

2.如何预防CSRF攻击

  1. 禁止三方网站获取cookie,比如设置Chrome的SameSite属性

弊端:SameSite试用阶段,兼容性不是很理想

  1. 服务端通过Referer Header 和 Origin Header来进行同源验证

弊端1:攻击者可以部分修改或者隐藏referer

withdraw?amount=10000&for=hacker

弊端2: 某些浏览器或者操作会丢失origin头部,比如302重定向

弊端3:HTTPS页面跳转到HTTP页面,所有浏览器Referer都丢失。

弊端4:对于被动性攻击并不能识别

其他: 某些低版本浏览器对origin和referer并不是很稳定,各种意想不到的结果,极其不稳定

3. 利用token来鉴别,三方跨站请求并不能获取到头部的token,本站的接口在请求前都会在请求头增加token用于身份鉴权,三方请求并不会携带token

弊端1:token鉴权对服务端压力较大,许专门开辟服务器用于token鉴权,耗费服务器成本并且增加请求时间

弊端2:对于页面ajax,fetch等异步请求外的其他请求如form提交,a链接等需要去挨个加token,不能形成统一的token增加入口,存在部分疏漏

相对而言token鉴权算是比较好的一种防护措施

4. 利用双重cookie来认证,在每个请求的参数都附加scrfCookie='随机数'防御参数,并在cookie中混入该防御参数值,服务端将请求头部的cookie中防御cookie参数和请求参数所带的该参数进行比对

弊端: 前后分离的代码,后端接口和前端可能不同源,比如前端www.xx.com,后端接口为api.xx.com,前端要拿到后端接口域下的cookie必须将cookie都放在xx.com下面才能保证所有子域都可以拿到,这样反而增加xss攻击风险得不偿失

DOS攻击

DOS攻击通过在网站的各个环节进行攻击,使得整个流程跑不起来,以达到瘫痪服务为目的。最常见的就是发送大量请求导致服务器过载宕机

1. 防范措施

  • 扩容服务器【有钱公司玩的】
  • 进行实时监控,封禁某些恶意密集型请求IP段
  • 增加接口验证,对于某些敏感接口,进行单个IP访问次数限制
  • 进行静态资源缓存,隔离源文件的访问,比如CDN加速

页面劫持

攻击者通过请求的数据传输过程进行数据修改,或者对网站域名进行泛域名解析以重定向网站,在网站中注入广告等

1.1 跳转型劫持,通过泛域名解析等将用户访问的页面打到其他网站,以进行恶意竞争,或者打到一些钓鱼网站进行用户个人利益和其他网站利益名誉侵害

1.2 注入型劫持,对于网站的请求资源进行拦截修改,加入恶意代码或者广告等

  1. 如何预防网络劫持
  • 最有效且暴力的直接换成HTTPS,建立安全通道
  • 进行漏洞监控,根据实际情况做出调整

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-03
本文作者:吾乃Jiraiya
本文来自:“掘金”,了解相关信息可以关注“掘金

相关文章
|
2月前
|
运维 供应链 安全
阿里云先知安全沙龙(武汉站) - 网络空间安全中的红蓝对抗实践
网络空间安全中的红蓝对抗场景通过模拟真实的攻防演练,帮助国家关键基础设施单位提升安全水平。具体案例包括快递单位、航空公司、一线城市及智能汽车品牌等,在演练中发现潜在攻击路径,有效识别和防范风险,确保系统稳定运行。演练涵盖情报收集、无差别攻击、针对性打击、稳固据点、横向渗透和控制目标等关键步骤,全面提升防护能力。
|
3月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
97 32
|
2月前
|
云安全 人工智能 安全
|
2月前
|
存储 安全 网络安全
云计算与网络安全:探索云服务的安全挑战与策略
在数字化的浪潮下,云计算成为企业转型的重要推手。然而,随着云服务的普及,网络安全问题也日益凸显。本文将深入探讨云计算环境下的安全挑战,并提出相应的防护策略,旨在为企业构建安全的云环境提供指导。
|
3月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
91 11
|
3月前
|
存储 安全 网络安全
云计算与网络安全:技术融合与安全挑战
随着云计算技术的飞速发展,其在各行各业的应用日益广泛。然而,随之而来的网络安全问题也日益凸显,成为制约云计算发展的重要因素。本文将从云服务、网络安全、信息安全等方面探讨云计算与网络安全的关系,分析云计算环境下的网络安全挑战,并提出相应的解决方案。
|
3月前
|
SQL 安全 算法
数字时代的守护者:网络安全与信息安全的现代策略
在数字化浪潮中,网络安全与信息安全如同航船上不可或缺的罗盘和舵。本文将探讨网络安全漏洞的成因、加密技术的重要性以及安全意识的培养,旨在为读者提供一套完整的网络自我保护指南。从基础概念到实用策略,我们将一起航行在安全的海洋上,确保每一位船员都能抵达信息保护的彼岸。
|
3月前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
116 5
|
3月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
489 1
|
3月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现

热门文章

最新文章