在我学习流星的过程中,过去几周试图通过一些验证来构建一个简单的问题我偶然发现了什么。
直到今天,我一直试图将我的Collection Schema保留在服务器端,并且在客户端上渲染Schemas服务器验证时遇到了一些困难,所以我添加了alerced:autoform。
当我开始使用autoform时,在出现一些错误之后,我很惊讶地意识到要在客户端定义Collection的Schema HAD才能正常工作。
这看起来有点危险吗?您的馆藏架构是否应在客户端上发布?
这可能是一个愚蠢的问题,我不确定。我提前道歉:D
答案 0 :(得分:0)
您需要定义架构,以便客户端和服务器代码都可以访问它。这是因为,表单验证在客户端完成一次(应始终将其视为不安全,因为它在浏览器控制台中可用,如下所示),一次在服务器端。服务器端验证始终被视为安全。因此,即使您设法通过任何方式从浏览器操作表单,如果验证不符合架构,它也会在服务器端过滤掉,只要架构附加到集合< / strong>即可。我相信这是安全的。
Meteor autoform page建议你删除不安全的内容并添加允许/拒绝规则。
如果您愿意,请务必为不受信任的代码定义正确的插入安全性 删除了
insecure
包。呼叫允许/拒绝或使用 ongoworks:security
我遵循的步骤是为了保证安全(请注意,可能有更好的方法,因为我对流星宇宙也很新)