免责声明:我不是真正的开发人员,我只是喜欢不时编写一些代码:)
最近我大致了解了 AngularJS 和浏览器端 MVC 框架,并决定使用它。大多数 Angular 文档都没有详细讨论服务器端的事情,这让用户可以自由选择。在阅读了 Angular 的$resource
服务之后,我了解了像 MongoDB 和 CouchDB 这样的数据库,它们自己公开了一个 RESTful 接口。这带来了一个明显的问题——你如何保护这些东西?
在“传统”的 Web 应用程序中,服务器端会有一个层,负责对用户进行身份验证并授权他们访问数据。一旦完成,服务器端代码将使用固定的凭据集(相同,无论 webapp 用户身份如何)与底层数据存储(例如 RDBMS)对话。我当然可以复制这个模型并编写一些 CRUD 代码,这些代码将公开一个 REST 接口并表现类似。如果我想使用$resource
,我需要将 webapp 用户绑定到一些db用户吗?我不能使用一组通用的凭据,因为它们在代码中是可见的——看起来它正在编写一个中间层,或者将一组用户绑定到另一组。
我很好奇这个问题通常是如何解决的——正如你所看到的,我有一些想法。由于我缺乏经验,我只是对这里的最佳实践感到好奇 :) 一般来说,这可能是一个更广泛的问题:鉴于您不应该信任客户端运行的代码,您如何处理事情像表单验证和其他类似“授权”的逻辑?
tl;dr:您如何保护 RESTful 数据库访问?您如何保护您的应用程序逻辑?