作家
登录

利用脚本注入漏洞攻击ReactJS应用程序

作者: 来源: 2017-08-10 09:49:02 阅读 我要评论

ReactJS是一款可以或许赞助开辟者构建用户接口的热点JavaScript库。在它的赞助下,开辟者可以构建出内容丰富的客户端或Web应用,并且提前加载内容以供给更好的用户体验。

ReactJS

大年夜设计角度来看,只要你可以或许按照开辟标准来应用ReactJS的话,它其实是异常安然的。然则在收集安然范沉闼楝没有任何器械是绝对安然的,而缺点的编程实践方法将导致类似脚本注入马脚之类的问题产生,这些缺点的编程方法包含:

2.应用用户供给的href属性来设备标签,或应用其他可注入的属性来设置其他的HTML标签(例如link标签);

  1.  _isReactElement: true, 
  2.  _store: {}, 
  3.  type: “body”, 
  4.  props: { 
  5.    dangerouslySetInnerHTML: { 
  6.      __html: 
  7.      "<h1>Arbitrary HTML</h1> 
  8.      <script>alert(‘No CSP Support :(‘)</script> 
  9.      <a href=’http://danlec.com'>link</a>
  10.     } 
  11.   } 

3.显示地设置一个元素的dangerouslySetInnerHTML属性(危险的HTML标签属性);

4.向eval()传递用户供给的字符串数据;

接下来,让我们一路看一看这些潜在的问题将若何影响ReactJS应用法度榜样,并最终导致了脚本注入马脚的出现。

组件、属性和元素

在ReactJS应用法度榜样中,组件是最根本的构成部分。大年夜本质上来说,这些组件其实都类似于JavaScript函数,它们可以接收随便率性的输入数据,然后返回React元素。一个根本的ReactJS组件如下所示:

  1. class Welcome extends React.Component { 
  2.   render() { 
  3. return <h1>Hello, {this.props.name}</h1>
  4.   } 

请留意膳绫擎代码中的return语句,这是一种JavaScript中的语句扩大(JSX)。在项目构建的过程中,JSX代码将会被编译成惯例的JavaScript(ES5)代码。下面给出的两种样本代码其功能是完全雷同的:

  1. // JSX 
  2. const element = ( 
  3.   <h1 className=”greeting”> 
  4.   Hello, world! 
  5.   </h1> 
  6. ); 
  7. // Transpiled to createElement() call 
  8. const element = React.createElement( 
  9.   ‘h1’, 
  10.   {className: ‘greeting’}, 
  11.   ‘Hello, world!’ 
  12. ); 
  13. 在创建新的React元素时,应用的是component类中的createElement()函数: 
  14. React.createElement( 
     1/4    1 2 3 4 下一页 尾页

      推荐阅读

      WannaCry勒索病毒:全球网络攻击的幕后黑客取走比特币赎金

    此次的WannaCry病毒在蒲月份时袭击了世界各地,所用的文件加密恶意软件应用泄漏的NSA马脚进击Windows体系。据统计,WannaCry病毒感染了跨越30万台电脑,在美洲、欧洲、俄罗斯和中国令很多>>>详细阅读


    本文标题:利用脚本注入漏洞攻击ReactJS应用程序

    地址:http://www.17bianji.com/lsqh/36639.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)