我有一个 C# 应用程序,它对包含计算的源文件执行一些运行时编译到动态程序集中。显然,这是一个严重的安全问题。
从下面的“公式”,将生成下面的代码,并创建一个动态程序集:
公式:
Int32 _index = value.LastIndexOf('.');
String _retVal = value.Substring(_index + 1);
return _retVal;
Run Code Online (Sandbox Code Playgroud)
生成的代码:
using System;
namespace Dynamics
{
public class Evaluator
{
public Object Evaluate(String value)
{
// Begin external code
Int32 _index = value.LastIndexOf('.');
String _retVal = value.Substring(_index + 1);
return _retVal;
// End external code
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后加载动态程序集并通过反射执行 Evaluate 方法。这很好用。
问题是恶意代码注入的可能性很大,所以我想在“沙盒”线程(没有任何非托管 API 调用)中运行 Evaluate 方法。出于测试目的,我使用内置的匿名 Windows 用户,并提供了以下代码:
Thread tSandbox = new Thread(
new ParameterizedThreadStart(this.DoSandboxedEvaluation));
WindowsIdentity tIdentity = WindowsIdentity.GetAnonymous();
WindowsPrincipal tPrincipal = new …Run Code Online (Sandbox Code Playgroud) 有没有办法将.NET程序集加载到也以自定义方式限制的Sandbox环境中?我知道你可以在不同的AppDomain中运行程序集,但是你可以限制它能够做你想要限制的某些事情吗?
例如:我希望能够在ASP.NET应用程序内的单独程序集中加载插件(简单,仅通过特定接口定义),但我只希望插件能够访问某些数据访问层组件并且无法直接连接到任何数据库.我正在考虑让一个应用程序实例托管多个客户端数据的情况,我只希望该插件能够访问当前登录的特定客户端/用户的数据.
任何人对如何做到这一点都有任何想法?
我在这里找到了关于如何在Sandbox中加载程序集的以下问题,但它没有讨论添加Sandbox的任何自定义限制:
更新:看起来你可以在调用" AppDomain.CreateDomain "时设置一个非常具体的" PermissionSet " ,但我不确定我需要设置哪些权限来允许/禁止上面的指定权限.MSDN上也有这篇文章:http://msdn.microsoft.com/en-us/library/bb763046.aspx
此外,我希望在.NET 2.0/3.5中执行此操作
除了使用System.AddIn之外的任何其他想法?
对于我正在处理的应用程序,我正在使用CGEventPost发布一些关键事件,我注意到它已停止使用沙盒启用,即使我打开了"启用辅助设备访问"系统首选项.
是否有权允许使用CGEventPost?或者,是否有其他方式可以将提交到Mac App Store的应用发布到关键事件?
我有一个沙盒应用程序.
这个应用程序有一个XPC服务,不是沙盒.
XPC服务是否需要沙箱以便我能够提交到Mac App Store?
当我在编译沙箱c程序后尝试运行.out文件时,它会出现以下错误:
./sandbox: error while loading shared libraries: libsandbox.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我对应用程序应该在哪里发送一堆文件感到有些困惑。让我假设一个应用程序一次从用户那里接受一些带有NSOpenPanel的图像。应用程序对它们应用图形过滤器。现在可以保存处理过的文件了。在他们强迫我们沙箱应用程序之前,我们被允许在没有NSSavePanel 的情况下将处理过的文件导出到应用程序支持中的应用程序文件夹. 如果你想在别处保存文件,那么你必须使用 NSSavePanel。如果应用程序被沙盒化,它无法将文件发送到 NSApplicationSupportDirectory/{app name}(指向分配给该应用程序的容器文件夹)?几天前,我的第一个沙盒应用程序被拒绝,仅仅是因为文本字段显示了容器应用程序支持文件夹的路径。所以如果你有一堆文件要导出,你必须提示用户询问每个文件的保存位置? Apple, Inc. 发布的AppSandboxDesignedGuide没有具体说明文件的保存位置,只是说“您的应用程序对容器及其子目录具有不受限制的读/写访问权限”。我认为本 PDF 指南是本网站的印刷版. 我在这里问这个问题是因为我有一些疑问,至少在我两年前向他们提交申请时,审稿人经常是错误的。
感谢您的意见。
如何使用Sqoop将数据从关系数据库导入Sandbox中的Hive.我在MY PC中安装了Horton Works沙箱.我想知道这个迁移.我已经参考了这个链接http://hortonworks.com/kb/using-apache-sqoop-for-data-import-from-relational-dbs/ 但是我对一些疑问感到困惑1,是否需要任何Sqoop软件才能运行?2,在上面的mensioned链接中有一些代码在哪里我会把这段代码?在Hive查询窗口中?3,是否可以完全(或仅在时间表)迁移数据库?4,存储过程和Viwes会保留所有这些内容吗?
我的沙盒 OSX 应用程序 (10.9 Mavericks) 可以在 Apple 日历中创建日历和事件。我目前不明白的是,当应用程序启动时,为什么应用程序需要额外访问联系人?
我没有使用任何访问联系人的代码。我的项目不使用“AddressBook.framework”。
由于我没有在沙盒中启用“联系人”,我收到警告:沙盒应用程序无法在没有适当权利的情况下访问地址簿。
我想知道它是否与生日日历有关。
我正在建立一个Drupal commerce以网站Paypal为我所注册的业务支持Paypal帐户.现在,随着商业Paypal帐户,我已经创建了一个测试沙盒帐户,他们出现像
info-facilitator@inetgate.biz和info-buyer@inetgate.biz下https://developer.paypal.com/webapps/developer/applications/accounts
,但如果我不是试图通过支付例子来运行,尝试使用info-buyer@inetgate.biz买家帐户,它不允许我登录,也不会让我登录我的facilitator帐户,当我点击Enter Sandbox site我的Sandbox test accounts页面上的链接时.为什么这样,我错过了什么?
谢谢!
编辑1
ASorry,我没有描述:
paypal也不允许我登录我的
facilitator帐户
表示当我输入电子邮件info-facilitator@inetgate.biz加上我的公司帐户中的密码时,我收到以下消息:
请确保正确输入您的电子邮件地址和密码.如果您仍然无法登录,请参阅下面的故障排除提示.
我有一个即将在 App Store 上发布的 iOS 应用程序。我想在生产环境中测试应用内购买。我如何测试尚未发布的生产应用的应用内购买?
sandbox ×10
macos ×4
.net ×2
objective-c ×2
assemblies ×1
autoconf ×1
c# ×1
calendar ×1
cocoa ×1
contacts ×1
e-commerce ×1
events ×1
gcc ×1
hadoop ×1
hive ×1
paypal ×1
plugins ×1
reflection ×1
security ×1
sql-server ×1
sqoop ×1
xpc ×1