在MEAN堆栈中应该创建验证规则?

时间:2015-10-28 17:47:15

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

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

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

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

1 个答案:

答案 0 :(得分:3)

根据OWASP建议

  

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

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

在Angular部分,您在客户端验证问题而不会一直回到服务器,因此,您应该尽快防止此类问题。

快递,你需要验证,因为你不能相信你的前端。

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

为什么要验证?

  

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

来自同一来源:

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