首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个显示格式化用户生成文本的react网站?

如何创建一个显示格式化用户生成文本的react网站?
EN

Stack Overflow用户
提问于 2022-09-02 18:20:06
回答 1查看 28关注 0票数 0

假设你想在你的网站上显示文字。也许它是一个博客或一个网站,像一个媒体,甚至是堆栈溢出。你希望用户能够提交他们的写作。格式化文本(使某些部分粗体或斜体),在文本之间插入图片,等等。

你会怎么做呢?我想我可以找出一些麻木不仁的方法来做这件事,但是做这种网站的最佳做法是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2022-09-02 18:39:52

如果您使用的是无头CMS,wysiwyg编辑器,标记编辑器,.您很可能会以string的形式返回HTML,您需要输出它。

正如您可能已经注意到的,因此,您不能只在您的React组件中输出<div>{html}</div>。这是因为React 转义某些字符以防止XSS

为了显示用户提交的HTML,您可以使用https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml。这个奇怪名称的原因是您将允许用户输出不安全的HTML,这可能会在您的网站上执行JavaScript或网络请求。这可以有巨大的安全后果。您必须通过一个清除器运行HTML,它将删除可以用于执行JavaScript和转义字符的任何HTML属性,就像React那样。不要试图自己做这件事,人们不断地寻找新的方法来绕过这些消毒液。

您可以使用的消毒液:

电子邮件应用程序有时会使用沙箱iframe显示来自电子邮件的原始HTML,但对于内容,这并不是一个真正的选项(SEO)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73586619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档