应在 MEAN 堆栈中的何处创建验证规则?
Where in the MEAN stack should validation rules be created?
我正在使用 MEAN 堆栈创建一个应用程序,其中有大量表单数据条目从经过身份验证的用户和匿名用户持久保存到数据库中。
我应该在堆栈的哪个位置创建我的所有验证规则?他们应该在 AngularJS 中吗?但我希望我的服务器端 API 是安全的,所以也许它们应该在 Express 中然后冒泡到 AngularJS?或者它们应该一直在 MongoDB 层(我将使用 Mongoose,因此很容易在那里创建验证)。
目前我将它们遍布各处,并且发现自己在重复规则。我想避免这种情况并在一个地方创建规则。那么在 MVW 应用程序中定义验证的一般规则是什么,最好将它们放在哪一层(尤其是对于 MEAN 应用程序)?
根据 OWASP 的建议
Where to include validation
Validation must be performed on every tier. However, validation should be performed as per the function of the server executing the code. For example, the web / presentation tier should validate for web related issues, persistence layers should validate for persistence issues such as SQL / HQL injection, directory lookups should check for LDAP injection, and so on.
你需要到处验证。
在 Angular 部分中,您在客户端验证问题,而无需一直返回服务器,因此,您应该尽快防止此类问题。
在 express 上,您需要验证,因为您不能信任您的前端。
在 Mongo 上,您需要验证访问权限、权限、要插入的数据等。
为什么要验证?
The most common web application security weakness is the failure to
properly validate input from the client or environment. This weakness
leads to almost all of the major vulnerabilities in applications, such
as Interpreter Injection, locale/Unicode attacks, file system attacks
and buffer overflows. Data from the client should never be trusted for
the client has every possibility to tamper with the data.
来自同一来源:
我正在使用 MEAN 堆栈创建一个应用程序,其中有大量表单数据条目从经过身份验证的用户和匿名用户持久保存到数据库中。
我应该在堆栈的哪个位置创建我的所有验证规则?他们应该在 AngularJS 中吗?但我希望我的服务器端 API 是安全的,所以也许它们应该在 Express 中然后冒泡到 AngularJS?或者它们应该一直在 MongoDB 层(我将使用 Mongoose,因此很容易在那里创建验证)。
目前我将它们遍布各处,并且发现自己在重复规则。我想避免这种情况并在一个地方创建规则。那么在 MVW 应用程序中定义验证的一般规则是什么,最好将它们放在哪一层(尤其是对于 MEAN 应用程序)?
根据 OWASP 的建议
Where to include validation Validation must be performed on every tier. However, validation should be performed as per the function of the server executing the code. For example, the web / presentation tier should validate for web related issues, persistence layers should validate for persistence issues such as SQL / HQL injection, directory lookups should check for LDAP injection, and so on.
你需要到处验证。
在 Angular 部分中,您在客户端验证问题,而无需一直返回服务器,因此,您应该尽快防止此类问题。
在 express 上,您需要验证,因为您不能信任您的前端。
在 Mongo 上,您需要验证访问权限、权限、要插入的数据等。
为什么要验证?
The most common web application security weakness is the failure to properly validate input from the client or environment. This weakness leads to almost all of the major vulnerabilities in applications, such as Interpreter Injection, locale/Unicode attacks, file system attacks and buffer overflows. Data from the client should never be trusted for the client has every possibility to tamper with the data.
来自同一来源: