安全
消毒用户输入一种><!--t.168.13.5.2-->
对于诸如
离子警报
开发人员可以允许自定义或用户提供的内容。此内容可以是纯文本或HTML,并且应该被认为不受信任。与任何不受信任的投入一样,在用它做任何其他事情之前,重要的是消毒它。特别是,使用类似的东西
innerhtml.
没有消毒,为不良演员提供了一种攻击矢量,以输入恶意内容并潜在地推出a<一种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 Soonitizer,允许开发人员指定他们希望在其应用程序中允许的确切标记和属性。
棱角一种><!--t.168.40.5.2-->
角度内置了
domsanitizer
班级。这有助于通过确保在DOM中使用值来防止XSS问题。默认情况下,Angular将标记它认为不安全的任何值。例如,以下链接将以角度标记为不安全,因为它将尝试执行一些JavaScript。
民众
迈尔尔
:
细绳
=
'JavaScript:警报(“哦不!”)'
;
......
<
一种
[
HREF.
]
=
“myurl”
>
点击我
!
<
/
一种
>
要了解有关角度提供的内置保护的更多信息,请参阅<一种HREF.="https://angular.io/guide/security" c-id="168.100.5.1">
角度安全指南一种><!--t.168.102.5.2-->。
反应一种><!--t.168.108.5.2-->
在通过将它们转换为字符串之前,请在JSX中嵌入嵌入在JSX中的值。例如,以下是安全的
姓名
在呈现之前将转换为字符串:
Const.
姓名
=
价值
。
姓名
;
Const.
元素
=
<
H1.
>
你好,
{
姓名
}
!
H1.
>
;
但是,这不会阻止某人将JavaScript注入其中的地方
HREF.
锚元素的属性。以下是不安全的,可能会允许XSS攻击发生:
Const.
UserInput.
=
'JavaScript:警报(“哦不!”)'
;
Const.
元素
=
<
一种
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添加到组件的开发人员,例如
离子吐司
,他们需要从Sanitizer中弹出,该框架内置于离子框架中。betway东盟体育app开发人员可以在整个应用程序上禁用Sacitizer,或者逐个逐个绕过它。
绕过Sanitization功能可以让您的应用程序易受伤害<一种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-->。在禁用消毒仪时,请务必谨慎。
通过配置禁用Sacitizer一种><!--t.168.279.5.2-->
betway东盟体育app离子框架提供了一个可调用的应用程序配置选项
SanitizerEnabled.
那样
真的
默认。将此值设置为
错误的
全球禁用在消毒器中内置的离子框架。betway东盟体育app请注意,这不会禁用其他框架(例如Agenular)提供的任何消毒功能。
逐个案例绕过Sanitizer一种><!--t.168.297.5.2-->
开发人员还可以选择在某些方案中从Sunitizer弹出。betway东盟体育app离子框架提供
betway东盟体育appIonicsafestring.
允许开发人员这样做的课程。
用法一种><!--t.168.309.5.2-->
进口
{
betway东盟体育appIonicsafestring.
那
ToastController.
}
从
'@betway东盟体育app离子/棱角'
;
......
构造函数
(
私人的
ToastController.
:
ToastController.
的)
{
}
异步
透明
(
的)
{
Const.
吐司
=
等待
这
。
ToastController.
。
创建
(
{
信息
:
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
那
期间
:
2000年
}
的)
;
吐司
。
展示
(
的)
;
}
进口
{
betway东盟体育appIonicsafestring.
}
从
'@betway东盟体育app离子/核心'
;
......
Const.
异步
透明
=
(
的)
=>
{
Const.
吐司
=
文档
。
牧马赛
(
'离子吐司'
的)
;
吐司
。
信息
=
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
;
吐司
。
期间
=
2000年
;
文档
。
身体
。
阑尾
(
吐司
的)
;
返回
吐司
。
展示
(
的)
;
}
进口
反应
那
{
useestate.
}
从
'反应'
;
进口
{
动画
那
IonButton.
那
离子联系
那
betway东盟体育appIonicsafestring.
那
iontoast.
}
从
'@betway东盟体育app离子/反应'
;
出口
Const.
兜售
:
反应
。
FC.
=
(
的)
=>
{
Const.
[
showtoast.
那
setshowtoast.
]
=
useestate.
(
错误的
的)
;
返回
(
<
离子联系
>
<
Ionbutton onclick.
=
{
(
的)
=>
setshowtoast.
(
真的
的)
}
扩张
=
“堵塞”
>
显示吐司
<
/
IonButton.
>
<
Iontoast Isopen.
=
{
showtoast.
}
ondiddismiss.
=
{
(
的)
=>
setshowtoast.
(
错误的
的)
}
信息
=
{
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
}
期间
=
{
2000年
}
/
>
<
/
离子联系
>
的)
}
;
消毒用户输入一种><!--t.168.13.5.2-->
对于诸如
离子警报
开发人员可以允许自定义或用户提供的内容。此内容可以是纯文本或HTML,并且应该被认为不受信任。与任何不受信任的投入一样,在用它做任何其他事情之前,重要的是消毒它。特别是,使用类似的东西
innerhtml.
没有消毒,为不良演员提供了一种攻击矢量,以输入恶意内容并潜在地推出a<一种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 Soonitizer,允许开发人员指定他们希望在其应用程序中允许的确切标记和属性。
棱角一种><!--t.168.40.5.2-->
角度内置了
domsanitizer
班级。这有助于通过确保在DOM中使用值来防止XSS问题。默认情况下,Angular将标记它认为不安全的任何值。例如,以下链接将以角度标记为不安全,因为它将尝试执行一些JavaScript。
民众
迈尔尔
:
细绳
=
'JavaScript:警报(“哦不!”)'
;
......
<
一种
[
HREF.
]
=
“myurl”
>
点击我
!
<
/
一种
>
要了解有关角度提供的内置保护的更多信息,请参阅<一种HREF.="https://angular.io/guide/security" c-id="168.100.5.1"> 角度安全指南一种><!--t.168.102.5.2-->。
反应一种><!--t.168.108.5.2-->
在通过将它们转换为字符串之前,请在JSX中嵌入嵌入在JSX中的值。例如,以下是安全的
姓名
在呈现之前将转换为字符串:
Const.
姓名
=
价值
。
姓名
;
Const.
元素
=
<
H1.
>
你好,
{
姓名
}
!
H1.
>
;
但是,这不会阻止某人将JavaScript注入其中的地方
HREF.
锚元素的属性。以下是不安全的,可能会允许XSS攻击发生:
Const.
UserInput.
=
'JavaScript:警报(“哦不!”)'
;
Const.
元素
=
<
一种
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添加到组件的开发人员,例如
离子吐司
,他们需要从Sanitizer中弹出,该框架内置于离子框架中。betway东盟体育app开发人员可以在整个应用程序上禁用Sacitizer,或者逐个逐个绕过它。
绕过Sanitization功能可以让您的应用程序易受伤害<一种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-->。在禁用消毒仪时,请务必谨慎。
通过配置禁用Sacitizer一种><!--t.168.279.5.2-->
betway东盟体育app离子框架提供了一个可调用的应用程序配置选项
SanitizerEnabled.
那样
真的
默认。将此值设置为
错误的
全球禁用在消毒器中内置的离子框架。betway东盟体育app请注意,这不会禁用其他框架(例如Agenular)提供的任何消毒功能。
逐个案例绕过Sanitizer一种><!--t.168.297.5.2-->
开发人员还可以选择在某些方案中从Sunitizer弹出。betway东盟体育app离子框架提供
betway东盟体育appIonicsafestring.
允许开发人员这样做的课程。
用法一种><!--t.168.309.5.2-->
进口
{
betway东盟体育appIonicsafestring.
那
ToastController.
}
从
'@betway东盟体育app离子/棱角'
;
......
构造函数
(
私人的
ToastController.
:
ToastController.
的)
{
}
异步
透明
(
的)
{
Const.
吐司
=
等待
这
。
ToastController.
。
创建
(
{
信息
:
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
那
期间
:
2000年
}
的)
;
吐司
。
展示
(
的)
;
}
进口
{
betway东盟体育appIonicsafestring.
}
从
'@betway东盟体育app离子/核心'
;
......
Const.
异步
透明
=
(
的)
=>
{
Const.
吐司
=
文档
。
牧马赛
(
'离子吐司'
的)
;
吐司
。
信息
=
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
;
吐司
。
期间
=
2000年
;
文档
。
身体
。
阑尾
(
吐司
的)
;
返回
吐司
。
展示
(
的)
;
}
进口
反应
那
{
useestate.
}
从
'反应'
;
进口
{
动画
那
IonButton.
那
离子联系
那
betway东盟体育appIonicsafestring.
那
iontoast.
}
从
'@betway东盟体育app离子/反应'
;
出口
Const.
兜售
:
反应
。
FC.
=
(
的)
=>
{
Const.
[
showtoast.
那
setshowtoast.
]
=
useestate.
(
错误的
的)
;
返回
(
<
离子联系
>
<
Ionbutton onclick.
=
{
(
的)
=>
setshowtoast.
(
真的
的)
}
扩张
=
“堵塞”
>
显示吐司
<
/
IonButton.
>
<
Iontoast Isopen.
=
{
showtoast.
}
ondiddismiss.
=
{
(
的)
=>
setshowtoast.
(
错误的
的)
}
信息
=
{
新的
betway东盟体育appIonicsafestring.
(
'<离子按钮>你好! ion-button>'
的)
}
期间
=
{
2000年
}
/
>
<
/
离子联系
>
的)
}
;