0
我以同構的方式使用SimpleSchema(node-simpl-schema
包)。驗證消息顯示在客戶端以及meteor shell
。僅使用SimpleSchema進行驗證並不使用允許/拒絕規則是否不安全?
我的問題是這個設置是否實際上是安全的,如果我還需要寫入允許/拒絕規則。
例如:
SimpleSchema.setDefaultMessages
messages:
en:
"missing_user": "cant create a message with no author"
MessagesSchema = new SimpleSchema({
content: {
type: String,
label: "Message",
max: 200,
},
author_id: {
type: String,
autoform:
defaultValue: ->
Meteor.userId()
custom: ->
if !Meteor.users.findOne(_id: @obj.author_id)
"missing_user"
},
room_id: {
type: String,
}
}, {tracker: Tracker})
在meteor shell
我測試它和它的作品如預期。
> Messages.insert({content: "foo", author_id: "asd"})
/home/max/Desktop/project/meteor/two/.meteor/local/build/programs/server/packages/aldeed_collection2-core.js:501
throw error; // 440
^
Error: cant create a message with no author
我應該在我的允許/拒絕規則中複製這個驗證邏輯嗎?或者我可以讓我的allow
函數總是返回true
,就像我現在正在做的那樣?
感謝您的回覆。目前我有這個最小允許功能: –
Messages.allow 插入:(用戶ID,消息,字段,修改器) - > 嘗試 MessagesSchema.validate(消息) 真正 卡子E則假 –
我明白,這可能是好的從設計模式的角度來使用方法而不是允許/拒絕。但是,如果我只能使用SimpleSchema,那麼嚴格來說,方法和allow/deny都不是必須的。我想知道這是否確實如此,或者服務器上的SimpleSchema規則可以以某種方式被覆蓋。 –