C# 是否可以使用沙箱并运行C++;或者是';是在浏览器的文本字段中输入的吗?
在经历了十年的桌面开发之后,我正在潜入web开发,我正在试验一些测试概念。我想知道沙箱是否可以运行在浏览器中的文本字段中输入的C++代码?这样,我的意思是运行后端Web服务器上的C++代码或C代码,并返回代码的分析。我想说的是,我不是说运行C++或C代码,它是为了生成任何一种标记,而只是黑盒测试输入的C++或C语言块。p>C# 是否可以使用沙箱并运行C++;或者是';是在浏览器的文本字段中输入的吗?,c#,c++,C#,C++,在经历了十年的桌面开发之后,我正在潜入web开发,我正在试验一些测试概念。我想知道沙箱是否可以运行在浏览器中的文本字段中输入的C++代码?这样,我的意思是运行后端Web服务器上的C++代码或C代码,并返回代码的分析。我想说的是,我不是说运行C++或C代码,它是为了生成任何一种标记,而只是黑盒测试输入的C++或C语言块。p> 根据所使用的web服务器,您将如何调用编译器 如何对代码进行沙箱处理以防止恶意行为?如果我们只考虑一个C变体,那么黑名单/白名单特定的函数和库如何防止恶意行为?或者这个黑名单
C++没有反射能力,所以第三方库是你的最佳选择。
< P>如果服务器运行Linux,你可以考虑使用。我们实际上用我们的产品IKNoad做了这个。我们正利用这个想法在云中创建一个后端
我们通过创建一个沙箱来实现这一点,沙箱接受一段特定的代码并执行它,捕获结果并将其返回给用户。这一切都是在云端完成的 根据所使用的web服务器,您将如何调用编译器 使用 我们通过使用.Net框架中的CodeDom实用程序来实现这一点。我们正在探索即将推出的“编译器即服务”项目,该项目来自微软公司,代号为Roslyn 这是使用以编程方式编译的一个很好的起点 如何对代码进行沙箱处理以防止恶意行为?如果我们 考虑到只有一个C变体,那么 黑名单/白名单特定函数和库,以防止 恶意行为?还是黑名单太长太多 限制允许运行任意数量的代码 我们通过将代码执行包装在一个单独且有限的AppDomain中来实现这一点。你可以看到一些例子此外,您可能希望查看MonoSandBox,它是为Moonlight创建的,但它是一个更健壮的沙盒。我们现在正在尝试使用它,以远离AppDomains。我们相信MonoSandBox比简单的AppDomains好得多。认为您需要修复这个:p编辑:接近他们的:D最终编辑:耶!LinkThes将是这样做的一种方式。。。但是我更想知道你为什么要这么做…@thecoshman,原因与codepad网站(见下面的回复)存在的原因类似,只是为了分享代码和它们的运行结果。谢谢你,Paul,这看起来是一个很好的探索能力!您需要根访问权限,而chroot只会更改您的根。(因此得名),它不是一个沙箱,也从未被设计用于此目的。