javascript - 如何让js在完全独立的上下文中运行
天蓬老师
天蓬老师 2017-04-10 13:11:37
[JavaScript讨论组]

类似chrome的Content Scripts那样。我需要把一段用户脚本放到一个完全独立的上下文中,也就是隔离掉外面的所有变量比如window,document,top,location...,只允许使用给定的一些东西。
大概的样子是这样的,但是这个做法明显很扯蛋,忘记过滤哪个变量就完蛋了……应该说100%会漏掉……

function runScript(script){
  try{
    (function (script, window, document, top, location, console, ......){
      eval(script);
    }).call({somethings}, script)
  } catch {

  }
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
PHP中文网

试试模块加载器。

PHP中文网

找到一个小玩意 https://github.com/tarruda/vm.js 看起比较靠谱地说,不过自己编译执行什么的……感觉效率会有点问题啊,有没有直接利用js特性的更好的做法?

ringa_lee

过滤掉浏览器的api?试试在node里运行呢?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号