3

我正在使用MVC4单页前端和另一台机器上的WebAPI构建应用程序,该应用程序将json查询数据直接返回给浏览器。身份验证发生在构建用户对象的MVC端,该用户对象为当前用户定义一组“canDoX”权限。如何使用单页来保护WebAPI

问题是如何基于这些权限来保护对WebAPI操作的访问,而无需在页面.js收到请求时重新进行身份验证和授权。

目前的情况是,用户必须了解的API,但如果他们这么做,他们可以破解任何数据,他们希望通过'/api/myController/myRestrictedAction/123'

任何想法的网址和查询?我是否应该取消单页面的想法,并从MVC控制器调用webAPI?

回答

3

HTTP是无状态的。您必须对每个请求执行授权和身份验证,并且该页面上的各种资源通常每页访问多次。

根据您的示例,'/api/myController/myRestrictedAction/123'是您暴露给某人的资源。访问该资源的用户是否应该能够访问它取决于你自己决定。

而不是将用户访问随机端点视为“黑客入侵”,它实际上是一个应用程序中的错误,它允许用户请求和访问他应该无法访问的内容。

相关问题