2

背景

我必须将现有的 javascript 应用程序(单页应用程序)迁移到 extjs。应用程序的显示和行为取决于用户的权限。

当前设计

应用程序分为插件,它们表示授予权限的功能集。这些插件中的每一个都包含一个 javascript 文件。用户可以拥有一个或多个插件的权限。根据权限,这些文件被加载到页面的头部。这些插件中的每一个都会将其条目添加到主菜单并公开用于驱动应用程序的方法。
权限存储在 mysql 数据库中。

ExtJs 的默认设计

在 ExtJs 中,源文件包含每个类。在构建过程中,所有的 .js 文件被连接起来生成一个包含所有内容的大 .js 文件。

最好的设计方法是什么?

  1. 我考虑过使用自定义编译sencha cmd,并以这种方式为每个插件创建一个 .js 文件。然后我可以像现在一样加载这些插件。但这会导致复杂的构建和部署过程。
  2. 我还考虑过使用标准的 Ext 构建过程创建一个也是唯一的 .js 文件。然后,我将通过 ajax 从服务器加载权限以构建菜单。所有对象和方法都将存在,但只有在用户具有权限的情况下才能访问这些对象和方法。

在我看来,第二种方法更容易维护,但它似乎存在安全问题,因为每个人都可以查看源代码并找出服务器上暴露并被ajax消耗的数据接口。

欢迎任何意见、想法或建议。谢谢 !

4

1 回答 1

2

第二个将是要走的路。如果您检查服务器端权限(在更新数据等时),您只需要 ExtJS 来根据权限显示/隐藏菜单项。这样,恶意用户可以打开或关闭某些插件/项目,但他们永远无法执行需要比他们通常拥有的更多权限的东西。

于 2013-10-03T14:17:17.737 回答