jjzjj

Javascript 沙箱

我想让开发人员用Javascript为网站编写一些自定义应用程序,但我想将其沙盒化,这样他们就不能做任何调皮的事情,比如重定向用户、将正文显示设置为无等等。我有一个命名空间Javascript,其中存在他们需要的所有功能,所以我想创建一个沙箱是一个问题:with(Namespace){//AppcodegoesherewheretheycanonlyaccessNamespace.*}解决这个问题有多容易?还有哪些其他方法可以完成?宁愿不必审核每个提交的应用程序。 最佳答案 那么,目前沙盒代码的选项是:GoogleCajaProje

javascript - 谷歌浏览器扩展 "content"脚本是否被沙盒化?

我的印象是content_scripts是在页面上执行的,但现在看来好像正在进行一些沙盒操作。我正在开发一个扩展来记录站点的所有XHR流量(用于调试和其他开发目的),并且在控制台中,以下嗅探代码有效:varo=window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open=function(){console.log(arguments,'open');returno.apply(this,arguments);};console.log('myopen');console.log(window,win

javascript - 如何锁定(或沙箱)JDK 的内置 Javascript 解释器以运行不受信任的脚本

我们有一个Java应用程序,想使用内置的Javascript解释器(javax.script.*)运行不受信任的代码然而,默认情况下,解释器允许访问任何java类。例如,脚本中的“java.lang.System.exit(0)”将关闭JVM。我相信这叫做“LiveConnect”,有关详细信息,请参阅Sun的“JavaScriptingProgrammer'sGuide”。我想以某种方式关闭脚本访问Java类的能力,即我只希望脚本能够访问我使用eval()或ScriptEngine上的put()方法。我找到了一些关于如何使用旧的独立版本的解释器(Rhino)实现此目的的文档,例如参见

javascript - 调试 gf3/sandbox 模块

我正在node.js中做我的初级步骤,我正在尝试了解沙箱机制。目前我正在使用Nodev4.0.0和Node检查器v0.12.3。我已经安装了gf3/sandbox模块并使用这个简单的代码运行它:vars=newSandbox();s.run('1+1+"apples"',function(output){console.log(output.result);});为了方便调试,我还在sandbox.js文件中注释了timeout函数://timer=setTimeout(function(){//self.child.stdout.removeListener('output',out

javascript - sinon.stub() vs sinon.sandbox.stub()?

在我们的前端单元测试中使用sinon和sinon-qunit,我很难理解这些方法的区别。我们正在使用sinon.sandbox.stub()(字面意思是函数,我们不创建沙箱)并且这些stub显然会在每次测试后自动恢复。我只是在文档中的任何地方都看不到这一点。我不认为存在这种方法,我认为您需要使用sinon.sandbox.create()显式创建沙箱。在该沙箱对象上,您将调用stub函数,即mySandbox.stub(),而不是"sinon.sandbox.stub()"。谁能帮我理解一下? 最佳答案 stub-Sinon.JSs

javascript - 在开发期间在特定 IP 地址上运行 sails.js

我是sails.js的新手,正在尝试在远程沙箱服务器上开发一个简单的应用程序。当我执行'sailslift'来测试应用程序的运行时,我无法通过'localhost'访问它。我想知道在开发期间在特定IP上sails的正确方法是什么。我试过'sailslift--ipxxx.xxx.xx.xx',但它不起作用,而且似乎缺少这方面的文档。有谁知道如何在不需要部署的情况下在IP上运行sails.js? 最佳答案 您需要在配置目录中使用local.js来添加此配置:{主机:your_ip,端口:your_port}或者在config/env/

javascript - Rhino 是唯一支持沙盒和可序列化延续的解释器吗?

我需要(a)沙盒,和(b)可序列化的延续。I'mexposingserver-sidegamescriptingtousers,并且它是非常异步的,因此回调模式使得代码不可读并且对于新手程序员来说非常难以接近。continuation-passing风格是另一种选择,但也有同样的缺点。异步是指对用户的查询可能需要数月才能完成。参见http://weaverengine.com/platforms我的完整列表可序列化延续似乎是一个非常优雅的解决方案,但很少有解释器支持它们。到目前为止,似乎我唯一的选择是Rhino。我希望NodeJS或PyPy能够工作,但目前的证据表明情况恰恰相反。Lua

javascript - 网页可以检测到篡改用户脚本吗?

我的问题有两个方面。首先,沙箱模型如何工作,如何影响用户脚本,从网页和用户脚本的Angular可以访问/看到的内容,以及如果使用其他沙箱模型也会影响页面,从而能够注意到您的脚本已注入(inject)到页面(或没有)。第二个,如何将脚本注入(inject)到页面中,并且页面可以检测到它?第一据我所知,当您使用@grantnone时,沙箱被禁用,您将可以访问该网页及其javascript。如果您对javascript和/或DOM进行了任何更改,则该页面可能会检测到它。我的理解是,如果您使用@grantunsafeWindow,您的脚本将被隔离在其自己的js上下文中,您对window所做的任

NYM 技术为社区参与推出“Nym Sandbox“测试网

在备受期待的主流网络发布之前,总部位于瑞士的隐私初创公司推出了NymSandboxTestnet,与最近推出的NovaTestnet一起作为永久测试网。NymSandbox向开发人员、节点运行者和研究人员开放,他们希望在加入或部署到主网网之前尝试NymMixnet体系结构。Sandbox测试网的发布是NYM三步主流网络开发周期中的一个重要里程碑。作为NymSandbox发布的一部分,NYM开发团队还发布了一项关键的"CosmWas1.0"升级,以进一步增强其智能合同平台的能力,该平台为NYM交易所提供了动力。  NymCTO和联合创始人DaveHrycyszyn指出,随着每一个新版本的发布,团

macos - 有没有办法对 go os.exec 调用进行 chroot/sandbox(防止 rm -rf/)

我想测试/自动化一些存储库,基本流程是这样的:repos:=[]string{"repo1","repo2",...}forr:=rangerepos{//gitclonetherepo//cdrepodir//maketest//makebuild//...}我正在用GO做这件事使用os.exec调用所有系列的命令,例如:exec.Command("sh","-c","gitcloneproject")到目前为止一切顺利,但我想知道是否有一种方法可以保护/防止Makefile上的某些错误写入,这些错误可能会执行类似rm-rf/的操作。并破坏我的主机。基本上,我想使用系统库/工具,但只