gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:31:24 24 4
gpt4 key购买 nike

是否有任何机制(至少理论上)可以控制向客户端提供哪些脚本?我已使用 import('dynamically_loadable_file') 将代码拆分为动态可加载部分,但每当在客户端上调用它时,就会提供该文件。我想执行一些安全检查,以确定用户是否有权加载该文件。我想到了中间件,但这些仅适用于 HTTP,并且可执行脚本通过 WebSocket 提供服务。

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

也许对于 Meteor 来说这是不可能的,所以如果这在 JavaScript (node.js) 世界中的任何地方都是可能的,它也会有所帮助。

感谢您的想法和解释。

最佳答案

大多数客户端保护机制都可以通过足够的知识和正确的工具来实现。

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

使用 ssr 你会解决

  • allow to control which scripts are provided to a client?

  • perform some security check whether does a user have permission to load the file

  • scripts are served through WebSockets

  • control content of the provided scripts

  • add or "hide" some functions or variables to the script based on a user loading them

因为您的所有模板都在服务器上呈现,并且只有结果数据返回给客户端。

Meteor 的一些 ssr 包:

通用:https://docs.meteor.com/packages/server-render.html

react :https://www.chrisvisser.io/meteor/how-to-set-up-meteor-react-with-ssr (带有样板存储库链接的指南)

Vue:https://github.com/meteor-vue/vue-meteor/tree/master/packages/vue-ssr

原生 meteor 之路

除此之外,我想强调的是,您可以通过出版物和方法实现大多数数据处理。

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

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

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

关于javascript - 控制 Meteor.js 中动态加载的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com