允许用户添加html格式的笔记

时间:2011-05-27 00:12:44

标签: html css code-injection

我们希望允许我们的网络应用程序的用户留下用html格式化的笔记。

在客户端,我们为他们提供ckeditor [http://ckeditor.com/],这是一个生成html的wisywig编辑器,然后通过表单提交给服务器

然后,我们希望显示用户创建的注释,其格式与提交时完全相同

我担心的是:

  1. 将攻击和不良意图放在一边,如何在网站上显示时封装注释,以便 一个。它们不会从页面的其余部分继承设计 湾它们不会影响页面的其余部分,例如通过打开而不是意外关闭标签,或者不打开而关闭。

  2. 恶意代码注入攻击

  3. 目前,第一个更为重要,因为它是我们客户的内部产品,并不向广大公众开放。但是安全评论也很受欢迎

    我认为可能的解决方案是:

    1. 理想情况下,我想找到一种方法来封装这些用户html,比如:在这个区域内我显示你提交的内容(渲染,而不是来源),你不能影响并且不受影响页面其他部分的代码
    2. 具体来说,我们考虑在iframe中显示音符。

      1. 其他自然方向是处理解析插入的内容,并剥离东西。
      2. 欢迎任何意见,主要是:

        • 如果可以的话,如何“封装”插入的内容?

        • 对iframe方向的任何评论

        • 我还要解析内容吗?我绝对要剥离什么?

2 个答案:

答案 0 :(得分:1)

如果可以的话,如何“封装”插入的内容?

事实是,除非你“修理”他们的代码(通过某种检查)你会得到问题(想想破坏的div等)。我不知道如何封装 HTML FROM HTML 。然而,我只会让他们放入大胆,斜体,中心等内容;

对iframe方向的任何评论

就我个人而言,我不会走这条路,为了安全而不是一种新的蠕虫,而不是一种“干净”的方式。

我还要解析内容吗?我绝对要剥离什么?

是的,不要偷懒,一些开发人员总是说“好吧我不需要它,它的内部”然后它变成一个外部的东西,并且在那一点上它是如此之大,以至于只有一个完整的重写会使它正确并且它一直在徘徊,直到某些东西被打破,然后屎击中了粉丝,大老板大声喊出为什么没有这样做。长话短说。

是的,您必须解析/验证/检查您的所有输入,无论是内部还是外部。除此之外的任何事情都只是懒惰。

最后,我会在SO上使用像这样的编辑器,它只允许某些类型的选择性格式化。在所有损坏的<b>不会终止您的整个布局后,<div>将...

答案 1 :(得分:0)

降价格式

您可以在用户生成的内容(问题,答案,评论)中使用与该站点(StackOverflow)完全相同的中介解决方案。

这不是可以替代诸如代码编辑器之类的WYSIWYG解决方案的完整解决方案,但这只是普通的用户生成内容woudl所需要的。它甚至允许您包含图像。

有关完整指南,请执行以下操作: https://www.markdownguide.org/cheat-sheet