搜索文档 /

安全

消毒用户输入<!--t.168.13.5.2-->

对于以下组件 ion-alert 开发人员可以允许自定义或用户提供内容。这些内容可以是纯文本或HTML,应该被认为是不可信的。对于任何不可信的输入,在对其进行其他操作之前,对其进行清理是很重要的。特别是,使用像 innerHTML 如果没有消毒处理,就会为不良行为者提供一个攻击向量来输入恶意内容,并可能启动一个<一个href="https://en.wikipedia.org/wiki/Cross-site_scripting" c-id="168.23.5.5"> 跨站脚本攻击(XSS)<!--t.168.25.5.6-->.

betway东盟体育appIonic内置了基本的组件净化方法,但对于用户创建的组件,开发者需要确保所有数据都是净化的。不同的框架有不同的解决方案来净化用户输入,因此开发人员应该熟悉他们的特定框架提供的功能。

对于不使用框架的开发人员,或者框架没有提供他们需要的清理方法的开发人员,我们建议使用<一个href="https://www.npmjs.com/package/sanitize-html" c-id="168.32.5.1"> sanitize-html<!--t.168.34.5.2-->.这个包提供了一个简单的HTML消毒剂,允许开发人员指定他们希望在应用程序中允许的确切标记和属性。

<!--t.168.40.5.2-->

Angular是内置的 DomSanitizer 类。通过确保在DOM中使用值是安全的,这有助于防止XSS问题。默认情况下,Angular会标记任何它认为不安全的值。例如,下面的链接会被Angular标记为不安全的,因为它会尝试执行一些JavaScript。


              公共
             myUrl
              
             
              字符串
             
              
             
              javascript:警报(“噢,不!”)
              
             
              ...
             
              <
             一个
              
             href
              
              
              “myUrl”
              >
             点击我
              
              <
              /
             一个
              >

要了解更多Angular提供的内置保护,请参阅<一个href="https://angular.io/guide/security" c-id="168.100.5.1"> 角安全指南<!--t.168.102.5.2-->.

反应<!--t.168.108.5.2-->

React DOM转义嵌入在JSX中的值,然后将它们转换成字符串。例如,下面的代码是安全的 的名字 在呈现之前转换为字符串:


              常量
             的名字
              
             
              
             的名字
              
             
              常量
             元素
              
             
                <
               h1
               >
              你好,
              
             的名字
              
              
                
               h1
               >
              

然而,这并不能阻止某些人将JavaScript注入诸如 href 锚元素的属性。以下是不安全的,可能会导致XSS攻击发生:


              常量
             userInput
              
             
              javascript:警报(“噢,不!”)
              
             
              常量
             元素
              
             
                <
               一个
              
               href
                
                
               userInput
                
               >
              点击我!
                
               一个
               >

如果开发商需要实现更全面的消毒,他们可以使用<一个href="https://www.npmjs.com/package/sanitize-html" c-id="168.223.5.1"> sanitize-html<!--t.168.225.5.2-->包中。

要了解React和JSX提供的内置保护的更多信息,请参阅<一个href="https://reactjs.org/docs/introducing-jsx.html" c-id="168.229.5.1"> 反应JSX文档<!--t.168.231.5.2-->.

Vue<!--t.168.237.5.2-->

Vue不提供任何内置的消毒方法。建议开发人员使用如下包<一个href="https://www.npmjs.com/package/sanitize-html" c-id="168.241.5.1"> sanitize-html<!--t.168.243.5.2-->.

了解有关绑定到指令的安全性建议的更多信息,例如 v-html ,请参阅<一个href="https://vuejs.org/v2/guide/syntax.html" c-id="168.250.5.3"> Vue语法指导<!--t.168.252.5.4-->.

从内置的消毒剂中弹出<!--t.168.258.5.2-->

对于希望向组件添加复杂HTML的开发人员,例如 ion-toast ,它们将需要从离子框架内的消毒剂中喷射出来。betway东盟体育app开发人员可以在整个应用程序中禁用消毒剂,也可以根据具体情况绕过它。

绕过杀毒功能会使应用程序容易受到<一个href="https://en.wikipedia.org/wiki/Cross-site_scripting" target="_blank" rel="noreferrer" c-id="168.270.6.1"> XSS攻击<!--t.168.272.6.2-->.禁用消毒剂时,请格外小心。

通过配置禁用消毒剂<!--t.168.279.5.2-->

betway东盟体育app离子框架提供了一个应用程序配置选项,称为 sanitizerEnabled 它被设置为 真正的 默认情况下。将此值设置为 来全面禁用离子框架内置的消毒剂。betway东盟体育app请注意,这并不会禁用其他框架(如Angular)提供的任何清理功能。

要根据具体情况来避开消毒剂<!--t.168.297.5.2-->

在某些情况下,开发人员还可以选择从消毒剂中弹出。betway东盟体育app离子框架提供了 betway东盟体育appIonicSafeString 类,它允许开发人员这样做。

使用<!--t.168.309.5.2-->


                进口
               
                
               betway东盟体育appIonicSafeString
                
               ToastController
                
               
                
               
                “@betway东盟体育appionic /角”
                
               
                ...
               
                构造函数
                
                 私人
                toastController
                 
                ToastController
                
               
                
                
               
                异步
               
                presentToast
                
                
               
                
               
                常量
               烤面包
                
               
                等待
               
                
                
               toastController
                
                创建
                
                
               消息
                
               
                
               
                betway东盟体育appIonicSafeString
                
                ' < ion-button >你好!< / ion-button >”
                
                
               持续时间
                
               
                2000
               
                
                
                
               烤面包
                
                现在
                
                
                
               
                
               

                进口
               
                
               betway东盟体育appIonicSafeString
                
               
                
               
                “@betway东盟体育appionic /核心”
                
               
                ...
               
                常量
               
                异步
               
                presentToast
               
                
               
                
                
               
                =>
               
                
               
                常量
               烤面包
                
               文档
                
                createElement
                
                “ion-toast”
                
                
               烤面包
                
               消息
                
               
                
               
                betway东盟体育appIonicSafeString
                
                ' < ion-button >你好!< / ion-button >”
                
                
               烤面包
                
               持续时间
                
               
                2000
                
               文档
                
               身体
                
                列表末尾
                
               烤面包
                
                
               
                返回
               烤面包
                
                现在
                
                
                
               
                
               

                进口
               反应
                
               
                
               useState
                
               
                
               
                “反应”
                
               
                进口
               
                
               动画
                
               IonButton
                
               IonContent
                
               betway东盟体育appIonicSafeString
                
               IonToast
                
               
                
               
                “@betway东盟体育appionic /反应”
                
               
                出口
               
                常量
               ToastExample
                
               反应
                
                足球俱乐部
               
                
               
                
                
               
                =>
               
                
               
                常量
               
                
               showToast
                
               setShowToast
                
               
                
               
                useState
                
                
                
                
               
                返回
               
                
               
                <
               IonContent
                >
               
                <
               IonButton onClick
                
                
                
                
               
                =>
               
                setShowToast
                
                真正的
                
                
               扩大
                
                “块”
                >
               展示烤面包
                <
                /
               IonButton
                >
               
                <
               IonToast isOpen
                
                
               showToast
                
               onDidDismiss
                
                
                
                
               
                =>
               
                setShowToast
                
                
                
                
               消息
                
                
                
               
                betway东盟体育appIonicSafeString
                
                ' < ion-button >你好!< / ion-button >”
                
                
               持续时间
                
                
                2000
                
               
                /
                >
               
                <
                /
               IonContent
                >
               
                
               
                
                
Baidu