0

我已经安装了mpowaga:autoform-summernotedjedi:sanitize-html尝试清理进入的数据,simpleschema但是我不确定我是如何让它工作的。我只希望用户能够添加“p”和“a”标签以及粗体和斜体样式。我在这里做错了什么?

description: {
       type: String,  
        optional: true,
        autoform: {             
            afFieldInput: {
                type: 'summernote', 
                class: 'editor',
                settings: {
                    allowedTags: ['p', 'a'],
                    toolbar: [
                        ['style', ['bold', 'italic']],
                        ['para', ['ul', 'ol']]
                      ]
                }
            }
        }
    }
4

2 回答 2

0

在summernote 设置中设置允许的标签只会在客户端起作用,并且不安全。你需要这样的东西来清理服务器。

description: {
       type: String,  
        optional: true,
        autoValue: function(){
          return Meteor.isServer ? sanitizeHtml( this.value ) : this.value;
        },
        autoform: {             
            afFieldInput: {
                type: 'summernote', 
                class: 'editor',
                settings: ...
            }
        }
    }
于 2016-03-27T18:04:08.387 回答
0

我有同样的问题。

要开始回答您的问题,我认为您无法对您的内部进行消毒SimpleSchema(尽管我希望我错了,因为那是最简单的)。据我所知,该设置对象是用于summer-note 的选项...例如工具栏上将显示的内容。我不认为该对象是您可以使用该djedi:sanitize-html功能的地方:

http://summernote.org/deep-dive/ https://github.com/mpowaga/meteor-autoform-summernote/issues/16

这个 GitHub 问题似乎表明 sanitize 应该进入某种 before 钩子中:

https://github.com/mpowaga/meteor-autoform-summernote/issues/13

但是,我认为 autoform 钩子是客户端的,因此djedi:sanitize-html不会在那里工作。有一个客户端版本 ( djedi:sanitize-html-client) 但我不确定这是否不安全并且首先破坏了消毒的目的?

就个人而言,我正在使用带有方法调用的自动表单。如果我解决了我会报告的。

延伸阅读:

于 2016-03-27T16:36:33.403 回答