24小时接单的黑客

黑客接单,黑客业务,黑客技术,黑客教程,网络安全

在React中防范XSS攻击

跨站点脚本制作(XSS)攻击是一种将恶意代码引入网页页面随后实行的攻击。这也是前面Web开发者务必解决的最多见的互联网攻击方式之一,因而掌握攻击的基本原理和预防方式十分关键。

在这篇文章中,大家将查询好多个用React撰写的编码示例,那样您还可以维护您的站点和用户。

示例1:React中取得成功的XSS攻击

针对咱们全部的示例,大家将完成同样的基本要素。大家将在界面上有一个输入框,用户可以在其中键入文字。点一下“Go”按键将仿真模拟运作检索,随后一些确定文字将展示在手机屏幕上,并向用户反复她们查找的专业术语。这也是一切容许你检索的企业网站的规范个人行为。

小技巧|在React中防范XSS攻击

非常简单,是吧?会出什么问题呢?

行吧,如果我们在输入框中键入一些HTML该怎么办?使我们试着下列字符串常量:

  • <imgsrc="1"onerror="alert('Gotcha!')"/>
  • 如今会产生哪些?

    小技巧|在React中防范XSS攻击

    哇,onerror 事情程序处理已实行!那不是大家需要的!大家仅仅不经意间地从来不受信赖的用户键入中实行了脚本制作。

    小技巧|在React中防范XSS攻击

    随后,粉碎的画面将展现在界面上,那也不是大家需要的。

    那麼我们都是怎么到这儿的呢?行吧,在本例中3D渲染百度搜索的JSX中,大家采用了下列编码:

  • <pstyle={searchResultsStyle}>Yousearchedfor:<b><spandangerouslySetInnerHTML={{._html:this.state.submittedSearch}}/></b></p>
  • 用户键入被分析和3D渲染的因素是人们采用了 dangerouslySetInnerHTML 特性,这也是React中的一个特点,它的原理如同原生态的 innerHTML 电脑浏览器API一样,因为这些缘故,一般觉得应用这一特性不是可靠的。

    示例2:React中的XSS攻击不成功

    如今,使我们看一个取得成功防御力XSS攻击的示例。这儿的修补方式比较简单:为了更好地可靠地3D渲染用户键入,大家不应该应用 dangerouslySetInnerHTML 特性。反过来,使我们那样撰写輸出编码:

  • <pstyle={searchResultsStyle}>Yousearchedfor:<b>{this.state.submittedSearch}</b></p>
  • 大家将键入同样的键入,但这一次,这儿是輸出:

    非常好!用户键入的內容在手机屏幕上只展现为文本,危害已被消除。

    这也是个喜讯!React默认设置状况会对3D渲染的具体内容开展转译解决,将全部的统计数据都视作文字字符串数组解决,这等同于应用原生态 textContent 电脑浏览器API。

    示例3:在React中清除HTML內容

    因此,这儿的提议好像非常简单。只需不必在你的React编码中应用dangerouslySetInnerHTML 你就可以了。但假如你察觉自己必须应用这一作用呢?

    例如,或许您已经从例如Drupal之类的内容管理系统(CMS)中获取內容,而在其中一些內容包括标识。(顺带说一句,你以为一开始也不提议在文字內容和来源于CMS的翻泽中包括标识,但针对本例,大家假定您的建议被否定了,而且含有标识的信息将保存出来。)

    在这样的情况下,您的确想分析HTML并将其展现在界面上。那麼,您怎样安全性地保证这一点?

    回答是在3D渲染HTML以前对它进行清除。与彻底转译HTML不一样,在3D渲染以前,您将利用一个函数公式运作內容以除去一切不确定性的恶意代码。

    您可以采用很多出色的HTML清除库。和一切与网络信息安全相关的物品一样,尽量不要自身写这种物品。有的人比你聪慧得多,无论她们是大好人或是恶人,她们比你考虑得大量,一定要应用久经考验的解决方法。

    我最喜欢的清除程序库之一称之为sanitize-html,它的作用恰似其名。您从一些不干净的HTML逐渐,根据一个函数公式运作它,随后获得一些好看、整洁、安全性的HTML做为輸出。假如您要想比他们的默认给予大量的操纵,您乃至可以自定容许的HTML标识和特性。

    完毕

    就这样了。怎样实行XSS攻击,如何防止他们,及其怎样在必需时安全性地分析HTML內容。

    祝你程序编写开心,安全无虞!

    详细的编码示例可在GitHub上寻找:https://github.com/thawkin3/xss-demo

    • 评论列表:
    •  酒奴蒗幽
       发布于 2022-06-01 14:20:19  回复该评论
    • etInnerHTML 特性,这也是React中的一个特点,它的原理如同原生态的 innerHTML 电脑浏览器API一样,因为这些缘故,一般觉得应用这一特性不是可靠的。示例2:React中的XSS攻击不成功如今,使我们看一个取得成功防御力XSS攻击的示例。这儿的修补方式比较简单
    •  馥妴眉薄
       发布于 2022-06-01 21:05:47  回复该评论
    • or:<b><spandangerouslySetInnerHTML={{._html:this.state.submittedSearch}
    •  纵遇语酌
       发布于 2022-06-01 19:30:50  回复该评论
    • esultsStyle}>Yousearchedfor:<b><spandangerouslySetInnerHTML={{._html:this.state.submittedSearch}}/></b></p>
    •  夙世池虞
       发布于 2022-06-01 20:47:19  回复该评论
    • ,粉碎的画面将展现在界面上,那也不是大家需要的。那麼我们都是怎么到这儿的呢?行吧,在本例中3D渲染百度搜索的JSX中,大家采用了下列编码:<pstyle={searchResultsStyle}>Yousear
    •  掩吻逐鹿
       发布于 2022-06-01 15:32:10  回复该评论
    • ,粉碎的画面将展现在界面上,那也不是大家需要的。那麼我们都是怎么到这儿的呢?行吧,在本例中3D渲染百度搜索的JSX中,大家采用了下列编码:<pstyle={searchResultsStyle}>Yousear

    发表评论:

    «    2025年1月    »
    12345
    6789101112
    13141516171819
    20212223242526
    2728293031
    文章归档
    标签列表

    Powered By

    Copyright Your WebSite.Some Rights Reserved.