我在另一台机器上构建一个带有MVC4单页前端和WebAPI的应用程序,该机器将json查询数据直接返回给浏览器。验证发生在MVC端,其中构建用户对象,该用户对象定义了一组" canDoX"当前用户的权限。
问题是如何根据这些权限保护对WebAPI操作的访问,而不会在从页面.js收到请求时重新对用户进行重新身份验证和授权。
按照目前的情况,用户必须知道api,但如果他们这样做,他们可以通过'/api/myController/myRestrictedAction/123'
有什么想法吗?我应该废弃单页的想法,只是从MVC控制器调用webAPI吗?
答案 0 :(得分:3)
HTTP是无状态的。您必须对每个请求执行授权和身份验证,对于该页面上的各种资源,每次页面访问通常会多次访问。
根据您的示例,'/api/myController/myRestrictedAction/123'
是您向某人公开的资源。访问该资源的用户是否应该能够访问它由您决定。
不是将用户访问随机端点视为"黑客攻击网址,而是应用程序中的一个错误,它允许用户请求和访问他无法访问的内容。