如何使用单页保护WebAPI

本文关键字:WebAPI 保护 单页 何使用 | 更新日期: 2023-09-27 18:11:47

我正在用MVC4单页前端和另一台机器上的WebAPI构建应用程序,该应用程序直接向浏览器返回json查询数据。身份验证发生在MVC端,其中构建了一个用户对象,该对象为当前用户定义了一组"canDoX"权限。

问题是我如何根据这些权限保护对WebAPI操作的访问,而不需要在接收到来自页面.js的请求时重新验证和授权用户。

目前,用户必须知道api,但如果他们知道,他们可以破解url并通过'/api/myController/myRestrictedAction/123'查询他们想要的任何数据

任何想法?我应该放弃单页面的想法,只是从MVC控制器调用webAPI吗?

如何使用单页保护WebAPI

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

根据您的示例,'/api/myController/myRestrictedAction/123'是您向某人暴露的资源。访问该资源的用户是否应该能够访问它由您来决定。

不要认为用户访问随机端点是"入侵url",它实际上是应用程序中的一个错误,允许用户请求和访问他不应该访问的东西。