使用流星方法进行表单验证和安全性

时间:2016-06-14 18:17:08

标签: forms validation meteor methods console

让我们假设一个人使用表单来更新集合中的文档。

通常,在提交后,可以使用某种类型的表单验证过程来验证表单中字段的完整性。然后在数据验证之后,假设数据被传递给meteor方法以实际更新集合。

但理论上,用户可以使用javascript控制台来构建对同一更新方法的流星调用。出于安全考虑,为了验证通过控制台提交的内容,这是否意味着必须在方法中验证字段的完整性?

因此,对于通过表单的正常提交案例,这将导致相同的字段被验证两次(一次在表单验证期间,一次在方法中)。

是否有一种优雅的方法来绕过冗余验证,或者所有方法都必须有冗余的字段验证步骤?

1 个答案:

答案 0 :(得分:0)

您应该考虑使用aldeed:collection2来验证对集合的更新。通常,您在/ lib中定义架构,然后在客户端和服务器上验证更新,但您只需编写一次代码。如果您想避免双重工作,那么只能在服务器上进行验证,因为您无法信任客户端。建议不要这样做,因为客户端验证的成本由您的用户承担,而不是您的服务器承担。如果在输入字段而不是onSubmit时验证字段,则可以创建更好的用户体验,因为您将更早地向用户提供反馈。

我的基本验证方法:

  1. 更改事件change(){}上每个表单字段的事件处理程序。这样做可以使字段边框为绿色表示有效条目,红色X表示无效条目。
  2. Collection2验证客户端上的文档插入/更新
  3. 方法验证他们的论点
  4. Collection2验证服务器上的文档插入/更新
  5. 更多阅读: