Javascript Meteor.js中动态加载脚本的控制

Javascript Meteor.js中动态加载脚本的控制,javascript,node.js,meteor,dynamic,dynamic-import,Javascript,Node.js,Meteor,Dynamic,Dynamic Import,是否有任何机制(至少在理论上)允许控制向客户机提供哪些脚本?我使用import('dynamicy\u loadable\u file')将代码拆分为可动态加载的部分,但只要在客户端上调用它,就会提供该文件。我想执行一些安全检查,看看用户是否有权加载文件。我想到了中间件,但它们只用于HTTP,可执行脚本通过WebSocket提供 此外,如果可能的话,我想控制所提供脚本的内容。例如,我想根据加载函数或变量的用户向脚本中添加或“隐藏”一些函数或变量。我想可能需要使用AST进行动态编译,或者可能有/将

是否有任何机制(至少在理论上)允许控制向客户机提供哪些脚本?我使用
import('dynamicy\u loadable\u file')
将代码拆分为可动态加载的部分,但只要在客户端上调用它,就会提供该文件。我想执行一些安全检查,看看用户是否有权加载文件。我想到了中间件,但它们只用于HTTP,可执行脚本通过WebSocket提供

此外,如果可能的话,我想控制所提供脚本的内容。例如,我想根据加载函数或变量的用户向脚本中添加或“隐藏”一些函数或变量。我想可能需要使用AST进行动态编译,或者可能有/将有其他东西可用。我想这是另一个层次,但如果有关于这些想法的内容,我会很感激

也许meteor根本不可能做到这一点,所以如果在JavaScript(node.js)世界的任何地方都可以做到这一点,它也会有所帮助


感谢您的想法和解释。

大多数客户端保护机制都有足够的知识和正确的工具

对于您的问题,最可行的解决方案是为您当前的前端引擎使用服务器端渲染(ssr)库

有了ssr,你的问题就解决了

  • 允许控制向客户端提供哪些脚本

  • 执行一些安全检查,检查用户是否具有加载文件的权限

  • 脚本通过WebSocket提供

  • 控制所提供脚本的内容

  • 根据加载函数或变量的用户向脚本中添加或“隐藏”某些函数或变量

因为所有模板都是在服务器上呈现的,只有结果数据返回到客户端

Meteor的一些ssr包:

通用:

反应:(带有样板回购链接的指南)

Vue:

土生土长的流星之路 除此之外,我想强调的是,您可以通过发布和方法实现大多数数据处理

如果您的数据和逻辑在服务器上不受保护,则在客户机上显示/隐藏HTML元素不会增加任何安全性

如果只将正确的数据发布给正确的用户(例如使用
alanning:roles
),则加载哪些脚本并不重要


方法也是如此:如果你对谁(再次使用
alanning:roles
)可以调用方法非常严格,那么这并不重要,如果用户可以禁用路由器并查看客户端上的所有“隐藏”区域,因为服务器端拒绝所有无效操作。

谢谢你的帖子,但它并没有真正回答我的问题,也不解决这些想法。SSR将完全违背使用JS的任何目的,特别是用于PWA。我也知道需要保护数据,但我想通过禁止未经授权的用户查看代码来增加下一级的安全性,这样他们甚至无法猜测哪里可能是不安全的发布(例如)。我看不出SSR在哪里不能解决这个问题?如果您有不安全的出版物,则需要对其进行安全保护和费率限制,并在必要时添加黑名单IP。默默无闻的安全性是非常不受欢迎的,IMO。是的,SSR可以解决这个问题,但会禁用PWA架构,我不再有动态应用程序,但必须重新加载所有内容。维基告诉我“…建议默默无闻永远不应该是唯一的安全机制。”我不希望它成为唯一的安全机制。此外,控制脚本可能有合法的理由。例如,我不想知道我的系统是否允许某些用户使用某些功能,例如某些模块。