【发布时间】:2021-03-14 15:12:37
【问题描述】:
我知道有人问过类似的问题,但我正在努力弄清楚如何去做。
我正在构建一个 CMS,现在相当原始,但它是一种学习练习;在生产站点中,我肯定会使用现有的解决方案。
我想接受用户输入,可以在 WYSIWYG 编辑器中设置样式。我还希望他们能够内联插入图像。
我知道我可以将 HTML 存储在数据库中,但是如何安全地重新渲染它。我知道存储的 HTML 没有问题,但我的理解是,如果我只是简单地将用户生成的代码转储到布局模板上,XSS 就会成为问题。
所以问题很简单,就是如何在 cms 中存储和安全地重新呈现用户内容?我正在使用 Laravel 和 PHP。如果需要的话,我对 javascript 也有一点了解。
【问题讨论】:
-
您需要添加更多详细信息以便回答。市场上有多种 CMS 的音调 + 数以百万计的自定义构建,您甚至没有提及您使用的内容。这个问题绝对是基于意见的,因为它不符合 Stackoverflow 的要求,它将被关闭。
-
@biesior 尊重,我不同意这个问题缺乏足够的细节。这个提问者不是在问 TinyMCE 是否是一个好的选择,而是在问如何清理传入的输入以防御网络爬虫。这个问题有具体的答案。
-
@O.Jones 很好,您正在尝试提供帮助,但是 OP 甚至没有询问 TinyMCE,而只是一般而言所见即所得。这是一个非常广泛的问题,很可能会产生很多基于意见的答案。好的行为是写关于代码的某些实际部分的问题,回答“如何将用户内容存储到 CMS”我们可以写整本书......最后我建议熟悉how to ask a question。
-
@biesior 我没有询问任何特定的 CMS 或构建,因为我没有使用。正如我在上面的问题中提到的,我正在寻求构建一个 CMS。因此,我不明白你评论的前提是什么? O. Jones 说我在质疑如何防范攻击是对的。我觉得你可能误解了我的问题?很高兴澄清它是否有帮助,并且您能够提供有用的答案/建议来帮助我?
标签: php mysql sql content-management-system xss