Javascript 在单页应用程序中处理安全性的一些技术是什么?

Javascript 在单页应用程序中处理安全性的一些技术是什么?,javascript,angularjs,web-applications,asp.net-web-api,single-page-application,Javascript,Angularjs,Web Applications,Asp.net Web Api,Single Page Application,我正在尝试使用Angular为前端开发构建一个单页应用程序,使用WebAPI 2.0为服务器端对象和控制器构建一个单页应用程序。处理安全性的一些推荐技术是什么。例如,(1)如何防止用户通过操纵客户端源提升其角色?或者,(2)当不允许用户进行api调用时,我如何防止用户进行api调用,比如对api/用户进行api调用 如果您使用的是WebAPI,那么您会很幸运,因为它直接与主机身份验证和授权模块集成。您可以使用任何内置的身份验证模块(匿名、基本、集成等)或编写自己的模块。例如,如果您拥有自定义权限

我正在尝试使用Angular为前端开发构建一个单页应用程序,使用WebAPI 2.0为服务器端对象和控制器构建一个单页应用程序。处理安全性的一些推荐技术是什么。例如,(1)如何防止用户通过操纵客户端源提升其角色?或者,(2)当不允许用户进行api调用时,我如何防止用户进行api调用,比如对api/用户进行api调用

如果您使用的是WebAPI,那么您会很幸运,因为它直接与主机身份验证和授权模块集成。您可以使用任何内置的身份验证模块(匿名、基本、集成等)或编写自己的模块。例如,如果您拥有自定义权限,则可以使用这些权限更新IPrincipal/IIdentity,并采取适当的操作,仅根据用户允许的内容返回结果。您还可以充分利用授权过滤器。这里有更多信息:

至于客户端代码,您可以在那里做一些事情。如果您使用的是WebAPI,那么就有机会使用MVC来服务这些页面。在这种情况下,您可以像在典型的MVC应用程序中一样保护对资源的访问,因此用户无法导航到他们不应该访问的内容。这就需要注意,永远不要呈现部分安全内容,这样用户就永远不会“入侵客户端”看到他们不应该看到的东西

在客户机本身上,您可能有基于权限公开各种控件的页面。在那里,您可以在客户端存储权限,并使用指令来显示或隐藏内容(在某些情况下,您甚至可以从服务器获取呈现的内容,并出于性能原因对其进行截断,以便在不显示的情况下永远不会对其进行编译)。同样,这是在客户端上发生的事情,但仍然没有公开安全性,因为要绑定到节点的实际数据是通过安全的API提供的