我们希望允许我们的网络应用程序的用户留下用html格式化的笔记。
在客户端,我们为他们提供ckeditor [http://ckeditor.com/],这是一个生成html的wisywig编辑器,然后通过表单提交给服务器
然后,我们希望显示用户创建的注释,其格式与提交时完全相同
我担心的是:
将攻击和不良意图放在一边,如何在网站上显示时封装注释,以便 一个。它们不会从页面的其余部分继承设计 湾它们不会影响页面的其余部分,例如通过打开而不是意外关闭标签,或者不打开而关闭。
恶意代码注入攻击
目前,第一个更为重要,因为它是我们客户的内部产品,并不向广大公众开放。但是安全评论也很受欢迎
我认为可能的解决方案是:
具体来说,我们考虑在iframe中显示音符。
欢迎任何意见,主要是:
如果可以的话,如何“封装”插入的内容?
对iframe方向的任何评论
我还要解析内容吗?我绝对要剥离什么?
答案 0 :(得分:1)
如果可以的话,如何“封装”插入的内容?
事实是,除非你“修理”他们的代码(通过某种检查)你会得到问题(想想破坏的div等)。我不知道如何封装 HTML FROM HTML 。然而,我只会让他们放入大胆,斜体,中心等内容;
对iframe方向的任何评论
就我个人而言,我不会走这条路,为了安全而不是一种新的蠕虫,而不是一种“干净”的方式。
我还要解析内容吗?我绝对要剥离什么?
是的,不要偷懒,一些开发人员总是说“好吧我不需要它,它的内部”然后它变成一个外部的东西,并且在那一点上它是如此之大,以至于只有一个完整的重写会使它正确并且它一直在徘徊,直到某些东西被打破,然后屎击中了粉丝,大老板大声喊出为什么没有这样做。长话短说。
是的,您必须解析/验证/检查您的所有输入,无论是内部还是外部。除此之外的任何事情都只是懒惰。
最后,我会在SO上使用像这样的编辑器,它只允许某些类型的选择性格式化。在所有损坏的<b>
不会终止您的整个布局后,<div>
将...
答案 1 :(得分:0)
您可以在用户生成的内容(问题,答案,评论)中使用与该站点(StackOverflow)完全相同的中介解决方案。
这不是可以替代诸如代码编辑器之类的WYSIWYG解决方案的完整解决方案,但这只是普通的用户生成内容woudl所需要的。它甚至允许您包含图像。
有关完整指南,请执行以下操作: https://www.markdownguide.org/cheat-sheet