HTML Sanitizer API.

2021-05-06 19:20:38

此功能仅在某些或所有支持浏览器中的安全上下文(HTTPS)中可用。

Web应用程序通常需要使用客户端的HTML的字符串,也许作为客户端模板解决方案的一部分,也许是呈现用户生成内容的一部分。很难以安全的方式这样做。 Sanitizer API允许以安全的方式呈现HTML。

要访问API,您将使用构造函数创建Sacitizer.Sanitizer实例,并允许允许的允许或可允许的元素和属性的可配置列表。

最常见的用例阻止XSS - 由内置默认列表处理,以便创建带有自定义配置的Sounitizer.Sanitizer,只能处理其他应用程序特定的用例。

API有两种消毒串的方法。一个返回一个字符串,另一个返回文档片段。有关详细信息,请参阅下面的示例部分。

HTML Soonitizer API的Sunitizer接口提供了采取不受信任的HTML字符串的功能,并消除它们以安全插入文档的DOM。

此示例显示使用Sacitizer.SanitizetOstring()方法消毒字符串的结果。使用禁止的脚本返回字符串,删除闪烁元素。

//我们的输入字符串清洁const Stringtoclean ='一些文本< b>< / i>< / b> <闪烁>标签< / blink>,包括流氓脚本< script>警报(1)< / script> def。' ; const结果= new()。 SanitizetOstring(StringToclean);控制台。日志(结果); //日志:"一些文本< b>< i>< / i> <闪烁>标签< / blink>包括流氓脚本def。"

可用的其他方法是Sanitizer.Sanitize()方法。这与上面非常相似,但是返回一个禁止脚本的DocumentFragment,并删除了闪烁元素。

//我们的输入字符串清洁const Stringtoclean ='一些文本< b>< / i>< / b> <闪烁>标签< / blink>,包括流氓脚本< script>警报(1)< / script> def。' ; const结果= new()。 Sanitize(StringToclean); //结果:包含文本节点和一个< b&gt的DocumentFragment;元素,具有< i>儿童元素