替代 dangerouslySetInnerHTML
Alternative to dangerouslySetInnerHTML
我使用 React 构建了一个存储文档的 Web 应用程序。这些是在 HTML 中创建的,然后存储在数据库中。为了在应用程序中显示它们,我通过使用 dangerouslySetInnerHTML
.
将 HTML 加载到 div
中
<div dangerouslySetInnerHTML={{__html: this.props.page.content}} />
即使通过这个工作得很好,名称 dangerouslySetInnerHTML
建议更多地关注这种情况,但我想知道究竟可以做些什么来保持足够的灵活性来加载 HTML 并使它出现在网络应用程序中。我相信危险这个词解决了跨站点脚本的危险,这意味着可以注入脚本,执行有害代码。
作为一种对策,我考虑在将 HTML 代码解析到 div
之前清理它。解决此问题的一个库是 DOMPurify. Another way would be to convert the HTML code from the database directly into React Elements using html-react-parser.
这是正确的方法吗?或者有 dangerouslySetInnerHTML
的替代方案吗?
也许这些解析器可以满足您的需求
我使用 React 构建了一个存储文档的 Web 应用程序。这些是在 HTML 中创建的,然后存储在数据库中。为了在应用程序中显示它们,我通过使用 dangerouslySetInnerHTML
.
div
中
<div dangerouslySetInnerHTML={{__html: this.props.page.content}} />
即使通过这个工作得很好,名称 dangerouslySetInnerHTML
建议更多地关注这种情况,但我想知道究竟可以做些什么来保持足够的灵活性来加载 HTML 并使它出现在网络应用程序中。我相信危险这个词解决了跨站点脚本的危险,这意味着可以注入脚本,执行有害代码。
作为一种对策,我考虑在将 HTML 代码解析到 div
之前清理它。解决此问题的一个库是 DOMPurify. Another way would be to convert the HTML code from the database directly into React Elements using html-react-parser.
这是正确的方法吗?或者有 dangerouslySetInnerHTML
的替代方案吗?
也许这些解析器可以满足您的需求