【问题标题】:How to proliferate access permission to Javascript MVC apps如何增加对 Javascript MVC 应用程序的访问权限
【发布时间】:2014-04-25 19:41:56
【问题描述】:

我最近完成了我的第一个 AgilityJS 项目,这是一个基于 Web 的文件浏览器,可让您创建和管理文件夹和文件,并在文件夹树中导航。我遵循了关于设计的各种 AgilityJS 建议,最终将我所有的 HTML 和 Javascript 都放在了一个 Javascript 文件中。

现在,我想提供这个应用程序的“只读”版本,它不能添加/编辑/删除文件和文件夹。我想在网站上有两种用户类型,一种只能读取文件和文件夹,另一种可以管理。

我的问题是,如何将这些权限差异扩展到我的 AgilityJS 应用程序?我知道如何在服务器端保护我的端点和操作,但我想知道在客户端执行此操作的最佳方法。我应该创建一个功能有限的应用程序的单独版本吗?我应该简单地隐藏某些按钮/功能吗?有没有理论、框架等?哪个处理这个问题?朝着正确方向的任何一点都会有所帮助。

【问题讨论】:

    标签: permissions agility.js


    【解决方案1】:

    大声笑——也许有人可以写关于这个主题的书。一些非常基本的想法:

    1. 我将从 MVC 的哲学辩论开始。有人在 MVC 的帮助下争论说,任何一段代码和任何一段数据模型都不应该被实现两次。业务逻辑和模型到服务器。相反的观点是专注于不惜一切代价为用户服务——即使这意味着为了避免额外的往返而双重维护代码或模型。中间的方式定义了业务代码和模型的主源,并确保遵循领先的主控(主控将首先更改)的其他地方。拿走你的选择。您对该问题的回答会影响用户界面在用户眼中的外观。

    2. 您需要认真考虑权限概念。看看微软,我会假设他们为所有应用程序投入了数十年的时间来构成权限概念。理想的权限概念很大程度上取决于您的应用程序。因此,在至少对您的应用程序了解很少的情况下,几乎不可能解决这个问题。然而,权限概念必须提出决定角色、组、访问权限、访问级别、上下文驱动权限(例如基于 IP 地址)、权限黑名单或白名单(每个用户在创建时拥有的权限)的策略。来自 Microsoft 的示例:http://office.microsoft.com/en-us/windows-sharepoint-services-help/permission-levels-and-permissions-HA010100149.aspx

    3. 客户端上的数据不安全!!!无论您在客户端上做什么,无论是数据隐藏、加密、压缩...... - 如果这是在客户端上完成的,则有多种方法可以读取数据(甚至通过禁用数据操作)或还原这些数据。有人可以将数据发送到您的服务器,而客户端甚至不应该提供更新表单可能会被黑客实施。因此,一旦您开始实施权限,请确保您发送给客户端的所有数据都允许用户读取,并且每次向数据库添加/更新数据时都包含权限检查。

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 2019-06-11
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多