博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript sandbox
阅读量:5871 次
发布时间:2019-06-19

本文共 1429 字,大约阅读时间需要 4 分钟。

用途

https://github.com/gf3/sandbox

  • Can be used to execute untrusted code.
  • Support for timeouts (e.g. prevent infinite loops)
  • Support for memory errors (and memory errors)
  • Handles errors gracefully
  • Restricted code (cannot access node.js methods)
  • Supports console.log and print utility methods
  • Supports interprocess messaging with the sandboxed code

 

例子

https://github.com/gf3/sandbox/blob/master/example/example.js

var Sandbox = require("../lib/sandbox")

  , s = new Sandbox()
// Example 1 - Standard JS
s.run( "1 + 1", function( output ) {
  console.log( "Example 1: " + output.result + "\n" )
})

 

通信

箱内和向外相互通信。

Sandboxed code:

onmessage = function(message){  if (message === 'hello from outside') { postMessage('hello from inside'); } };

Sandbox:

var sandbox = new Sandbox();sandbox.run(sandboxed_code);sandbox.on('message', function(message){  // Handle message sent from the inside  // In this example message will be 'hello from inside'});sandbox.postMessage('hello from outside');

 

 

// Example 11 - IPC Messagings.run( "onmessage = function(message){ if (message === 'hello from outside') { postMessage('hello from inside'); };", function(output){  })s.on('message', function(message){  console.log("Example 11: received message sent from inside the sandbox '" + message + "'\n")});var test_message = "hello from outside";console.log("Example 11: sending message into the sandbox '" + test_message + "'");s.postMessage(test_message);

 

转载地址:http://ofxnx.baihongyu.com/

你可能感兴趣的文章
kill prefix meta,milli,kilo input
查看>>
【Java学习路线图,看你掌握了多少】附全部知识点免费视频课程,名师主讲
查看>>
mysql多表查询
查看>>
angular 实现 echarts 拖动区域进行放大 方法
查看>>
python安装
查看>>
《F4+2—团队项目设计完善&编码测试》
查看>>
OpenCV学习(19) 细化算法(7)
查看>>
哈希表结构
查看>>
[leetcode-144-Binary Tree Preorder Traversal]
查看>>
[leetcode-611-Valid Triangle Number]
查看>>
Linux常用命令:ls命令
查看>>
uva-331-枚举-交换的方案数
查看>>
机器学习PAI快速入门
查看>>
H5网页涂鸦canvas
查看>>
Python基础1—搭建环境
查看>>
(转)android UI进阶之实现listview的下拉加载
查看>>
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法(转)
查看>>
mysql出现Got error 28 from storage engine错误
查看>>
elasticsearch-head 安装
查看>>
Hyperledger Fabric 1.1 -- Policy 构成
查看>>