React 如何避免 XSS 攻击?

什么是 XSS 攻击?

Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击!

XSS 指:恶意代码未经处理,与正常代码混淆在一起,浏览器无法辨别哪些脚本是可靠的,导致恶意脚本被执行。由于恶意脚本在客户端执行(实际上就是获取了客户端内的部分控制权),从而可以直接获取用户信息,或者利用这些信息冒充真实用户向服务器发起攻击。

React 如何避免 XSS 攻击?

通常注入的手段有如下方式:

1. 用户 UGC 内容,比如在表单内输出一段恶意脚本,服务器未经校验,直接进行存储,当其他客户端请求该资源时,则会在客户端上执行恶意脚本;

2. URL 参数,攻击者诱骗用户点击一个带有恶意代码的按钮 URL, 通过脚本内容在 URL 参数内,用户点击后,可能将该恶意脚本填充到 HTML 内,从而导致恶意脚本被执行;

3. POST 参数,这类难度较大,通过诱导用户填写相应内容来实现;

4. Cookie,可能来自其他子域的注入;

XSS 类型

根据注入手段的不同,通常将 XSS 攻击分为三类:存储型 XSS、反射型 XSS 以及存储型 XSS,这里不再进行赘述,参考相关文章即可。

事实上,大部分的 XSS 都发生在前后不分离的系统设计内,因为其代码和数据不分离的关系,导致存储型和反射型 XSS 都是在服务端取出恶意代码后,插入到 HTML 里的,攻击者刻意编写的数据被内嵌到代码中,被浏览器所执行。

React 如何避免 XSS 攻击?


React 如何做的?

通过对 XSS 深入了解,我们知道,XSS 攻击过程可以抽象为两步:

1. 攻击者提交恶意脚本;

2. 客户端执行恶意脚本;

通常防御的手段是:

1. 对 UGC 内容进行转义,即服务端不信任任何客户端的数据(这是一个好习惯);

2. 开启白名单,防止恶意跳转;

3. 对 Cookie 设置 HTTP only,将数据放在服务端维护;

但是,React 这了前后分离(数据和代码分离)的架构实际上已经规避了大部分的 XSS 攻击手段。除此之外,React 实现了一套独立于浏览器的浏览器 DOM 系统,它能够防止通过 HTML 注入恶意代码,比如:

React 如何避免 XSS 攻击?

React 会将插入变量转换为字符串,除非你在代码中通过 dangerouslySetInnerHTML 来插入 HTML 元素。

同时,React 在处理样式时,`style` 接受一个采用小驼峰命名属性的 JavaScript 对象,而不是 CSS 字符串。这与 DOM 中 `style` 的 JavaScript 属性是一致的,同时会更高效的,且能预防跨站脚本(XSS)的安全漏洞!


[V5]Solo with code!

免责声明:本文作者:“广州软件喵”,版权归作者所有,观点仅代表作者本人。本站仅提供信息存储分享服务,不拥有所有权。信息贵在分享,如有侵权请联系ynstorm@foxmail.com,我们将在24小时内对侵权内容进行删除。
(153)
JavaScript 语句
上一篇 2024年02月02日
nvidia geforce g102m
下一篇 2024年02月02日

相关推荐

  • asp服务器软件(10系统中搭建Web服务器)

    一、IIS的安装:一般在操作系统安装时不默认设置安装IIS,win10怎么搭建web服务器因此在次Web服务器的配置时必须安装IIS。安装方式为:...

    2023年10月29日
  • 串口硬盘(256gsata固态硬盘够用吗)

    256Gsata固态硬盘够用,不够用可使用从盘或移动硬盘。从目前的Windows系统看,128G的固态硬盘足以支持系统运行。硬盘容量主要还是看用户对电脑的需求。一般目前安装Win8/Win7系统需要占据大约10G的硬盘空间,再加上大家安装一些...

    2023年11月03日
  • 向日葵视频app安卓(网红都经常去哪里拍照)

    既然是网红,当然会选择经常去网红打卡地打卡啦!这样一来,网红和网红打卡地遥相辉映,互为烘托,达到最好的展现效果!...

    2023年11月08日
  • oneplus(一加手机有位置共享吗)

    一加9R,一加手机旗下产品。4月15日,定位品质旗舰的一加9R正式发布,新机配备了定制的三星120Hz柔性直屏,是业内规格最高的FluidAMOLED屏幕之一。此外还拥有高通骁龙8705G芯片、65W超级闪充、ColorOSForOnePlu...

    2023年11月11日
  • 超星阅览器(超星尔雅如何添加电脑版)

    超星尔雅电脑版并不是添加的,它是一款在线学习软件,面向智能手机、平板电脑等移动终端的移动学习专业平台,拥有超过百万册电子图书、海量报纸文章以及中外文献元数据,能够为用户提供方便快捷的移动学习服务。...

    2023年11月15日
  • 微信黄金红包(微信还有可能推出哪些红包)

    话费红包,流量红包,土豆盖饭红包(美团),耐克运动鞋红包(京东),服装红包(微店),英雄联盟皮肤红包,桑拿浴场大保健红包(服务),现货红包,期货红包,股票红包…………能用钱买的东西都可以用来送人,能送人的东西都可以红包!腾讯若是把红包这个平台...

    2023年11月16日
  • 摩托罗拉q9(性价比最高的5G手机是哪款)

    作为手机店的店长,我给大家一个参考:手机处理器性能强,价格便宜,它未必就是高性价比机型。判断一款手机性价比高低与否,需要综合考虑。...

    2023年11月26日
  • 推一把论坛(你最放纵的一次经历做了什么)

    那一日我以寡敌众,独力对阵四川唐门、山东赵家、河北通臂拳的三十二名好手。虽拼死一搏,可终究双拳难敌四手。...

    2023年12月05日
  • 翔升gts250(为什么gtx660跑分那么低)

    说实话我个人接触电脑硬件这么多年真的是没见过显卡涨价像今年这么厉害,曾经一千多块钱的卡现在都涨到两三千了,就连以前九系列,十系列显卡都被很多人翻出来狠赚了一笔,以前最老的750ti显卡又被再次推向神坛,我这段时间听到最多的一句话就是:你前面买...

    2024年01月05日
  • 手机cpu哪个好(荣耀20和畅享20pro哪个好)

    手机的处理器和运行内存原则上说应该是相辅相成的,两者都很重要,不管是小马拉大车还是大马拉小车显然都是不平衡的配置。处理器是保证软件和游戏运行速度和画面效果的根本,如果处理器性能不行那么运行内存再大也是没用的。现在有的性价比比较高的手机,配备骁...

    2024年02月02日
返回顶部