Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止用户按角色查看Meteor客户端脚本_Javascript_Security_Meteor_Roles - Fatal编程技术网

Javascript 阻止用户按角色查看Meteor客户端脚本

Javascript 阻止用户按角色查看Meteor客户端脚本,javascript,security,meteor,roles,Javascript,Security,Meteor,Roles,在Meteor中,我们将所有敏感代码放在/server中,将浏览器代码放在/client中。Meteor然后自动为我们编译并缩小所有/client端代码。谢谢流星 但是,我使用按用户角色管理内容。其中一个角色是管理员,我有一个客户端脚本,只供该用户使用,例如:/client/admin only/**.js。这些脚本中的所有代码都检查用户是否是管理员,并且只调用服务器来执行敏感任务,但我不希望除了管理员以外的任何人都能看到这些代码 我想确保的是,这些客户端管理JS文件只下载给实际管理员的用户,而

在Meteor中,我们将所有敏感代码放在
/server
中,将浏览器代码放在
/client
中。Meteor然后自动为我们编译并缩小所有
/client
端代码。谢谢流星

但是,我使用按用户角色管理内容。其中一个角色是管理员,我有一个客户端脚本,只供该用户使用,例如:
/client/admin only/**.js
。这些脚本中的所有代码都检查用户是否是管理员,并且只调用服务器来执行敏感任务,但我不希望除了管理员以外的任何人都能看到这些代码

我想确保的是,这些客户端管理JS文件只下载给实际管理员的用户,而不包括在Meteor创建的自动编译/缩小JS中

有没有办法设置Meteor生成两个版本的客户端JS?一个供普通用户使用,一个供管理员使用,并且只根据用户角色下载这些文件?

解决了这个问题:

虽然应用程序的客户端代码必须可以通过浏览器访问,但每个应用程序的服务器上都会有一些您不想与外界共享的密码。应用程序中的机密业务逻辑应该位于仅加载到服务器上的代码中。这意味着它位于应用程序的服务器/目录中,位于仅包含在服务器上的包中,或者位于仅加载在服务器上的包中的文件中


基本上,千年发展目标的指导是尽可能简化管理视图。如果这是不可接受的,您需要将其捆绑在一个单独的Meteor应用程序中,或者仅在内部可访问的网络上,或者通过使用,这样您就可以将第二个应用程序的身份验证分离出来。

否。如果看到不包含任何已发布数据的代码实际上是一个很大的问题,那么您需要将其捆绑到一个单独的应用程序中?对于同样的安全性,在服务器上定义它,而从不将其排除在客户端之外不是更好吗?特别是权限检查。没错,这就是我正在做的,但是你仍然需要一些客户端脚本。这就是我想隐藏的剧本。是的,这就是我所做的。我想做的是完全删除客户端代码。