【问题标题】:What are some techniques for handling security in a Single-Page Angular Application? [closed]在单页 Angular 应用程序中处理安全性的技术有哪些? [关闭]
【发布时间】:2014-01-27 23:38:32
【问题描述】:

我正在尝试使用 Angular 为我的前端开发构建一个单页应用程序,并为我的服务器端对象和控制器构建一个 WebAPI 2.0。有哪些推荐的处理安全性的技术。例如,(1)如何防止用户通过操纵客户端源来提升他们的角色?或者,(2)我怎样才能阻止用户进行 api 调用,比如 api/users,当他们不应该被允许这样做的时候?

【问题讨论】:

    标签: javascript angularjs web-applications asp.net-web-api single-page-application


    【解决方案1】:

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

    http://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      相关资源
      最近更新 更多