如何在单页面应用中处理敏感数据

时间:2014-06-02 16:47:13

标签: javascript asp.net-mvc angularjs asp.net-web-api data-protection

我需要了解并且可能有关单页应用的想法。

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

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

我不希望用户能够从互联网上查看任何数据或访问API。我应该遵循的巫婆方式?

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

如果有人可以解释这些内容在SPA中的作用,或者您同时使用Angular和MVC,我会很高兴。

1 个答案:

答案 0 :(得分:2)

这不起作用,你不能阻止用户篡改数据,制作自定义请求并做她想做的任何事情。

你应该做的是永远不要相信即将到来的数据 - 这意味着每次传入的ID都会被验证两次,一次是在你生成它时,然后在它回来时。要么是明确的,你要验证它是否合法,或者你加密它,所以当它回来时你解密它。

某些数据可以存储在服务器端,您提到的ID就是这样的示例。这样用户永远不会看到数据,你传递的是会话ID,这是一个很长的随机值,相当不可能。这种方法伴随着使用的服务器端资源的成本,用户越多,服务器之间存储的资源就越多。