【发布时间】:2016-05-15 21:41:20
【问题描述】:
在 Meteor 中,我们将所有敏感代码放在 /server 中,将浏览器代码放在 /client 中。 Meteor 然后自动为我们编译和缩小所有/client 边代码。谢谢流星。
但是,我使用https://github.com/alanning/meteor-roles 按用户角色管理内容。其中一个角色是管理员,我有一个仅供该用户使用的客户端脚本,例如:/client/admin-only/**.js。这些脚本中的所有代码都检查用户是管理员,并且只调用服务器来执行敏感任务,但我不希望除管理员之外的任何人都能够看到该代码。
我要确保的是,这些客户端管理 JS 文件仅下载给实际管理员的用户,而不包含在 Meteor 创建的自动编译/缩小的 JS 中。
有什么方法可以设置 Meteor 生成 2 个版本的客户端 JS - 一个供普通用户使用,一个供管理员使用 - 并且仅根据用户角色下载这些文件?
【问题讨论】:
-
不。如果看到没有任何已发布数据的代码实际上非常令人担忧,您需要将其捆绑到一个单独的应用程序中。
-
我们采用什么样的代码?为了同样的安全性,在服务器上定义它并且从不排除在客户端不是更好吗?尤其是权限检查。
-
没错,这就是我正在做的,但您仍然需要客户端上的一些脚本。这就是我要隐藏的脚本。
标签: javascript security meteor roles