Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许用户添加html格式的注释_Html_Css_Code Injection - Fatal编程技术网

允许用户添加html格式的注释

允许用户添加html格式的注释,html,css,code-injection,Html,Css,Code Injection,我们希望允许web应用程序的用户留下html格式的注释 在客户端,我们为他们提供ckeditor[http://ckeditor.com/]它是一个wisywig编辑器,生成html,然后通过表单提交给服务器 然后,我们希望显示用户创建的注释,其格式与他们提交的注释完全相同 我关注的是: 撇开攻击和恶意不谈,我如何在网站上显示时封装便笺,以便 A.它们不会从页面的其余部分继承设计 B它们不会影响页面的其余部分,例如,无意中打开并没有关闭标记,或者在没有打开的情况下关闭标记 恶意代码注入攻击 目前

我们希望允许web应用程序的用户留下html格式的注释

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

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

我关注的是:

  • 撇开攻击和恶意不谈,我如何在网站上显示时封装便笺,以便 A.它们不会从页面的其余部分继承设计 B它们不会影响页面的其余部分,例如,无意中打开并没有关闭标记,或者在没有打开的情况下关闭标记

  • 恶意代码注入攻击

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

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

  • 理想情况下,我会寻找一种方法来封装这些用户html,比如:在这个区域中,我显示您提交的内容(呈现的,而不是源代码),您不能也不会受到页面其他部分代码的影响
  • 具体来说,我们考虑在iFrame中显示注释

  • 另一个自然的方向是解析插入的内容,并剥离内容 欢迎任何意见,主要包括:

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

    • 对iframe方向有何评论

    • 我必须解析内容吗?我到底要去掉什么

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

    事实是,除非你“修复”了他们的代码(通过某种检查),否则你会遇到问题(想想坏掉的div,等等)。我不知道如何从HTML封装HTML。然而,我只会让他们把内容像粗体,斜体,中心,等等

    对iframe方向的任何评论


    就我个人而言,我不会走这条路,新的蠕虫可以安全,而不是一个'干净'的方式这样做

    我必须解析内容吗?我必须去掉什么?

    是的,不要偷懒,一些开发人员总是说“好吧,我不需要它,它是内部的”,然后它就变成了一个外部的东西,在这一点上,它是如此之大,只有完全重写才能使它正确,它一直在咕噜咕噜地前进,直到有东西坏了,然后大便击中了风扇,大老板大叫为什么没有这样做。长话短说

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

    最后,我将使用一个类似于下面这样的编辑器来完成这项工作,它只允许某些类型的选择性格式化。毕竟一个坏掉的
    不会毁掉你的整个布局,一个
    会…

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

    事实是,除非你“修复”了他们的代码(通过某种检查),否则你会遇到问题(想想坏掉的div,等等)。我不知道如何从HTML封装HTML。然而,我只会让他们把内容像粗体,斜体,中心,等等

    对iframe方向的任何评论


    就我个人而言,我不会走这条路,新的蠕虫可以安全,而不是一个'干净'的方式这样做

    我必须解析内容吗?我必须去掉什么?

    是的,不要偷懒,一些开发人员总是说“好吧,我不需要它,它是内部的”,然后它就变成了一个外部的东西,在这一点上,它是如此之大,只有完全重写才能使它正确,它一直在咕噜咕噜地前进,直到有东西坏了,然后大便击中了风扇,大老板大叫为什么没有这样做。长话短说

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

    最后,我将使用一个类似于下面这样的编辑器来完成这项工作,它只允许某些类型的选择性格式化。毕竟一个坏掉的
    不会毁掉你的整个版面,一个
    会…

    降价格式化 您可以使用与此站点(StackOverflow)在其用户生成的内容(问题、答案、评论)中使用的完全相同类型的中间解决方案

    它并不是可以取代代码编辑器等所见即所得解决方案的完整解决方案,但它正是通常用户生成的内容所需要的。它甚至允许您包含图像

    有关完整的指南:

    标记格式 您可以使用与此站点(StackOverflow)在其用户生成的内容(问题、答案、评论)中使用的完全相同类型的中间解决方案

    它并不是可以取代代码编辑器等所见即所得解决方案的完整解决方案,但它正是通常用户生成的内容所需要的。它甚至允许您包含图像

    有关完整的指南:

    “为了安全起见,新的蠕虫病毒并不是一种‘干净’的方法”,你能解释这两点吗?你是说根本不使用iframe?iframe上的一些线程:“为了安全而使用新的蠕虫,而不是一种‘干净’的方式”你能解释这两点吗?你是说根本不使用iframe?iframe上的一些线程: