1

我需要了解单页应用程序,也许还有一些想法。

我想创建一个项目,我会用 MVC 来做。我还想使用 AngularJS 进行客户端编程。

我知道 AngularJS 适用于单页应用程序,并且在使用 SPA 时,您可以将数据发送到 API 进行处理。但是从 Angular 发送的数据对用户是可见的并且可以被操作。

我不希望用户能够看到任何数据或从 Internet 访问 API。我应该遵循的女巫方式?

我正在考虑将敏感的用户数据保存在 MVC 控制器中。例如,假设用户 ID 对我的项目非常敏感。如果我将用户 ID 保留在 javascript 变量中,当我使用某些命令将其发送到 API 时,用户将能够更改 ID 并操纵系统。但是,如果我通过用户身份验证将用户 ID 保留在 MVC 控制器中,并向我的 MVC 控制器发送请求,那么用户将无法更改它。但我知道这不是最好的做事方式,必须有更聪明的方式。

如果有人能解释这些东西在 SPA 中是如何工作的,或者当你一起使用 Angular 和 MVC 时,我会很高兴。

4

1 回答 1

2

这是行不通的,您无法阻止用户篡改数据、制作自定义请求并在她身边做任何她想做的事情。

你应该做的是永远不要相信即将到来的数据——这意味着验证每个传入的 id 两次,一次是在你生成它时,然后是在它返回时。要么它很简单,你验证它是否合法,要么你加密它,所以当它回来时你解密它。

一些数据可以存储在服务器端,你提到的id就是这样的例子。这样用户永远不会看到数据,您传递的是会话 id,它是一个很长的随机值,而无法制作。这种方法伴随着使用的服务器端资源的成本,用户越多,请求之间存储的服务器资源就越多。

于 2014-06-02T17:25:43.593 回答