【问题标题】:Where in the MEAN stack should validation rules be created?应在 MEAN 堆栈的哪个位置创建验证规则?
【发布时间】:2016-01-28 15:23:21
【问题描述】:

我正在使用 MEAN 堆栈创建一个应用程序,该堆栈具有大量表单数据条目,这些条目从经过身份验证的用户和匿名用户都持久保存到数据库中。

我应该在堆栈的哪个位置创建所有验证规则?他们应该在AngularJS中吗?但我希望我的服务器端 API 是安全的,所以也许他们应该在 Express 中,然后冒泡到 AngularJS?或者他们应该一直在 MongoDB 层(我将使用 Mongoose,所以在那里创建验证很容易)。

目前我把它们散布在各处,并且发现自己在重复规则。我想避免这种情况并在一个地方创建规则。那么在 MVW 应用程序中定义验证的一般规则是什么?最好将它们放在哪一层(尤其是对于 MEAN 应用程序)?

【问题讨论】:

    标签: angularjs node.js mongodb express mean-stack


    【解决方案1】:

    根据 OWASP 的建议

    在哪里包含验证 必须在每一层上执行验证。但是,应根据执行代码的服务器的功能执行验证。例如,Web/表示层应该验证与 Web 相关的问题,持久层应该验证持久性问题,例如 SQL/HQL 注入,目录查找应该检查 LDAP 注入等等。

    您需要在任何地方进行验证。

    在 Angular 部分中,您在客户端验证问题,而无需一直返回服务器,因此,您应该尽早防止此类问题。

    在 express 上,你需要验证,因为你不能信任你的前端。

    在 Mongo 上,你需要验证访问、权限、要插入的数据等。

    为什么要验证?

    最常见的 Web 应用程序安全漏洞是未能 正确验证来自客户端或环境的输入。这个弱点 导致应用程序中几乎所有的主要漏洞,例如 如解释器注入、语言环境/Unicode 攻击、文件系统攻击 和缓冲区溢出。永远不应信任来自客户端的数据 客户端完全有可能篡改数据。

    来自同一来源:

    https://www.owasp.org/index.php/Data_Validation

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 2015-04-18
      相关资源
      最近更新 更多