Firefox有Sandbox和evalInSandbox().Chrome在其内容脚本中具有沙盒执行(它们称之为独立执行).我在IE浏览器扩展中寻找相同的东西.
我可以加载一个javascript文件,然后调用evalScript(),但代码在与页面上存在的javascript相同的环境中执行.我需要一种方法来运行我的库(包括并基于jQuery)在沙盒/隔离环境中,但仍然允许它修改DOM,就好像它在页面上运行一样.
Jint看起来很有前途,但目前无法评估jQuery.(他们可以解析它.)
我怎样才能做到这一点?
我正在尝试运行从未知来源的C代码编译的程序.我想确保程序不会损害我的系统.例如,system("rm -rf /")除非彻底检查代码,否则程序可能在源代码中有类似的内容,这是不可检测的.
我想到了以下两种方式
两者都不是非常优雅的解决方案,我不能自动化它们.而且,如果是1,它可能会损害VM.
任何帮助,将不胜感激.
我想在我们称之为"沙盒"的程序中运行该程序.
在当今的大多数操作系统上,默认情况是,当我们安装程序时,它可以访问许多可能不需要的资源,而且用户可能无意让它访问.例如,当一个人安装一个封闭的源程序时,原则上没有什么可以阻止它读取私钥~/.ssh并通过互联网将它们发送给恶意的第三方,除非用户是一个熟练使用跟踪程序的安全专家,他可能无法发现这种违规行为.
随着计算机上安装许多封闭源程序的激增,不同的操作系统采取了哪些措施来解决沙盒第三方程序的问题?
是否存在任何基于安全设计的操作系统,其中每个程序或可执行文件必须以清晰可读的格式声明用户运行所需的资源,以便操作系统在沙箱中运行它只访问那些资源?例如,可执行文件必须声明它将需要访问文件系统上的某个目录或文件,它必须通过网络访问某些域或IP地址,它将需要一定量的内存,等等...如果可执行文件位于其系统资源要求声明中,则应阻止操作系统访问它们.
假设一些程序员给我一个可执行jar(来自Java代码)以及要使用的入口点.我想在受限制的沙箱环境中从Java代码运行此jar(以编程方式),没有网络或文件系统访问或数据库访问以及固定数量的CPU和内存.即,Java代码不应该对我的jvm上运行的其他程序造成任何副作用.
理想情况下,我想根据情况允许某些访问(例如,只有某个目录中带有配额的文件).
我有一个简单的Cocoa图像预览应用程序.用户使用a选择文件NSOpenPanel,应用程序使用Quick Look API生成预览图像.
我想将预览生成移动到单独的XPC服务中.如果没有应用程序沙盒,一切正常,但在为父应用程序和XPC服务启用应用程序沙盒后,XPC服务将被拒绝对用户所选文件的读取权限.
允许父应用程序读取文件(因为它是通过NSOpenPanel选择的).
如何将用户选择的文件的"文件读取"权限从父应用程序传输到XPC进程,以便XPC进程可以读取文件以生成预览?
我的XPC服务通过其权利请求文件读取访问,我将以下密钥添加到XPC服务Info.plist,但这没有帮助:
JoinExistingSession = YES
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我需要在启动时运行,我转换为沙盒.
我有一个帮助应用程序创建,并且当我不编码签名我的应用程序时工作正常.
对于协同设计,看起来我必须创建配置文件 - 一个用于帮助程序,一个用于实际应用程序.
由于这些不匹配,我不能让两者匹配,并且我无法让帮助应用程序启动主应用程序.
我试图重新签署帮助:
codesign -f -vv -s"第三方Mac开发人员应用程序:" - i"com.mydomain.myhelper"--entitlements myhelper/myhelper.entitlements myhelper.app
并获得错误:目标文件格式无法识别,无效或不适合
我从头开始重新创建了帮助程序,没有任何结果.
我该怎么做这个帮助应用程序并让它签名?似乎没有关于此过程的文档.
我想在Mac上的Sandbox中使用LSOpenApplication()启动另一个自己的应用程序.
当然,我在权限文件中的'com.apple.security.temporary-exception.files.absolute-path.read-write'中添加了一行用于启动.
但是,在启动时,控制台吐出一个错误,该错误不允许进程xxxx启动"foo.app",因为它之前尚未由用户启动.手动启动一次后,它可以无错误地启动.
即使以前没有启动,我该如何启动该流程?这与沙盒无关吗?
我希望能够查看我的实际iPad/iPhone的文件系统,以验证文件是否正确写入.我可以使用模拟器通过导航到Users/me/Library/Application Support/iPhone Simulator/6.0/Applications/specific app/Documents来完成此操作.在这里,我可以看到我在我的应用程序中编写的所有文件和数据.
如果有人知道应用程序或某种方式查看我的应用程序的文件系统而没有JAIL BREAK的话,我会非常乐于助人
提前致谢
我意识到我在游戏中有点迟到准备好沙箱,但事实就是如此.
我正在为OS X 10.9开发.该应用程序显示日历事件数据,但不允许编辑,因此我启用了日历功能.
当我从Xcode运行它时,该应用程序可以很好地启用沙盒,但是当我使用开发者ID导出它时,应用程序会运行,但无法访问日历数据.更重要的是,系统永远不会要求我允许该应用访问日历数据.
当我运行应用程序时,它会启动,但不会显示任何数据.在Console中,sandboxd会抛出一堆如下所示的错误:
sandboxd: ([54]) appleeventsd(54) deny file-read-metadata /Library
和
sandboxd: ([54]) appleeventsd(54) deny mach-lookup com.apple.ocspd
我已经检查了应用程序的权利codesign -d --entitlements,并确认它是沙盒并具有日历权利.但是,当我在应用程序中检查它是否有权访问[EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]时,不出所料,因为它从未问过,返回EKAuthorizationStatusNotDetermined.
我觉得我遗漏了一些关于权利,代码签名或部署的非常基本的东西,但我不知道它是什么.所以我把自己放在你的集体怜悯和智慧上.
我计划为我的webapp构建一个模块系统,该系统使用沙盒iframe和postMessage API来安全地运行自定义用户模块.iframe阻止所有DOM访问,并且只应通过我提供的接口进行通信,该接口检查某些权限并提供数据.
系统本身非常简单,并且可以在模块内部使用vanilla js代码,但我希望允许开发人员使用通用框架/库来简化开发,即使用Vue进行数据绑定.
为模块提供此类功能的最佳方法是什么?性能是一个很大的因素,因为几十个这样的模块可能同时运行.让沙盒模块共享库是否安全?
sandbox ×10
macos ×3
cocoa ×2
javascript ×2
bho ×1
code-signing ×1
ekeventstore ×1
entitlements ×1
filesystems ×1
gcc ×1
helper ×1
iframe ×1
ios ×1
java ×1
jquery ×1
linux ×1
postmessage ×1
security ×1
sign ×1
xcode ×1
xpc ×1