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提供
- 控制所提供脚本的内容
- 根据加载函数或变量的用户向脚本中添加或“隐藏”某些函数或变量
alanning:roles
),则加载哪些脚本并不重要
方法也是如此:如果你对谁(再次使用
alanning:roles
)可以调用方法非常严格,那么这并不重要,如果用户可以禁用路由器并查看客户端上的所有“隐藏”区域,因为服务器端拒绝所有无效操作。谢谢你的帖子,但它并没有真正回答我的问题,也不解决这些想法。SSR将完全违背使用JS的任何目的,特别是用于PWA。我也知道需要保护数据,但我想通过禁止未经授权的用户查看代码来增加下一级的安全性,这样他们甚至无法猜测哪里可能是不安全的发布(例如)。我看不出SSR在哪里不能解决这个问题?如果您有不安全的出版物,则需要对其进行安全保护和费率限制,并在必要时添加黑名单IP。默默无闻的安全性是非常不受欢迎的,IMO。是的,SSR可以解决这个问题,但会禁用PWA架构,我不再有动态应用程序,但必须重新加载所有内容。维基告诉我“…建议默默无闻永远不应该是唯一的安全机制。”我不希望它成为唯一的安全机制。此外,控制脚本可能有合法的理由。例如,我不想知道我的系统是否允许某些用户使用某些功能,例如某些模块。