危险的SetInnerHTML的替代方案

问题描述 投票:1回答:1

我使用React构建一个存储文档的Web应用程序。这些是用HTML创建的,然后存储在数据库中。为了在应用程序中显示它们,我使用divdangerouslySetInnerHTML中加载HTML。

<div dangerouslySetInnerHTML={{__html: this.props.page.content}} />

即使通过这个工作完全正常,dangerouslySetInnerHTML这个名字也建议更多地关注这个案例,但我想知道究竟可以做些什么来保持足够的灵活性来加载HTML并让它出现在网络应用程序中。我相信危险这个词解决了跨站点脚本的危险,这意味着可以注入脚本,执行有害的代码。

作为对策,我想在清理HTML代码之前将其解析为div。解决这个问题的一个库是DOMPurify。另一种方法是使用html-react-parser将数据库中的HTML代码直接转换为React Elements。

这是正确的方法吗?或者有dangerouslySetInnerHTML的替代品吗?

html reactjs jsx code-injection tsx
1个回答
1
投票

也许这些解析器可以满足您的需求

html-to-react

html-react-parser

© www.soinside.com 2019 - 2024. All rights reserved.