它在一周之前运行良好,但是现在显示下面的错误。 我已经尝试了以下的东西,但没用。 ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 所以build议我可能的解决scheme public string HttpCall(string NvpRequest) //CallNvpServer { string url = pendpointurl; //To Add the credentials from the profile string strPost = NvpRequest + "&" + buildCredentialsNVPString(); strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode); ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; // allows for validation of SSL conversations ServicePointManager.ServerCertificateValidationCallback = delegate { […]
这里有几个资源解释了Chrome中的沙箱是如何工作的以及如何保护用户免受恶意代码的侵害。 铬博客 Chromium开发者文档 沙盒常见问题 这很好,而且我喜欢他们所使用的以操作系统为中心的devise(有些“操作系统可能知道如何保护自己比我们更好,所以我们让它”)。他们还提到在几个地方,沙箱本身被devise成不依赖于Chrome,而是多多lessless的独立,所以只要程序架构是兼容的,理论上任何进程都可以被沙箱化(沙箱代码必须作为它自己的进程非沙盒家长。) 我只是碰巧有一个应用程序,它的devise使得沙盒成熟,并能够得到一个父/子过程使用它。 我有Chromium代码,不知道下一步该怎么做。 有没有人真的用这个沙盒什么呢? 有没有资源logging它的使用情况或API? 我可以想象它应该是非常简单的,但我从哪里开始的损失。 编辑:我的发现下面的答案!
我们的Java应用程序的一部分需要运行由非开发人员编写的JavaScript。 这些非开发人员正在使用JavaScript进行数据格式化。 (主要是简单的逻辑和string连接)。 我的问题是如何设置这些脚本的执行,以确保脚本错误不会对应用程序的其他部分造成严重的负面影响。 需要防范无限循环 防止产生新的线程。 限制访问服务和环境 文件系统(例如:如果一个心存不满的脚本作者决定删除文件) 数据库(同样东西删除数据库logging) 基本上我需要设置的JavaScript范围只包括他们所需要的,没有更多。
我想build立一个C预处理器/编译器,允许从本地和在线源收集function。 即: #fetch MP3FileBuilder http://scripts.com/MP3Builder.gz #fetch IpodDeviceReader http://apple.com/modules/MP3Builder.gz void mymodule_main() { MP3FileBuilder(&some_data); } 这是很容易的部分。 困难的部分是我需要一个可靠的方法来“直接”或“无限制地访问磁盘或系统资源(包括内存分配和堆栈)”导入代码 。 我想要一种安全的方式来运行不受信任的C代码 (模块)的小片段,而不需要把它们放在单独的进程,虚拟机或解释器(尽pipe单独的线程可以接受)的开销。 要求 我需要在其访问数据和资源,包括CPU时间配额。 我将阻止直接访问标准库 我想停止创build无限recursion的恶意代码 我想限制静态和dynamic分配到特定的限制 我想抓住模块可能会引起的所有exception(如除以0)。 模块只能通过核心接口与其他模块交互 模块只能通过核心接口与系统(I / O等)进行交互 模块必须允许位操作,math,数组,枚举,循环和分支。 模块不能使用ASM 我想限制指针和数组访问为模块保留的内存(通过自定义safe_malloc()) 必须支持ANSI C或一个子集(见下文) 系统必须是轻量级和跨平台的(包括embedded式系统)。 系统必须是GPL或LGPL兼容的。 我很乐意解决C的子集。我不需要像模板或类的东西。 我主要对高级语言不擅长的事情感兴趣,比如快速math,位操作,二进制数据的search和处理。 现有的C代码无需修改就可以重新使用来创build模块。 其目的是要求模块符合一组规则和限制,这些规则和限制旨在将模块限制为基本逻辑和转换操作(例如video转码或压缩操作)。 对这样的编译器/预处理器的理论input将是具有module_main函数的单个ANSI C文件(或安全子集),不包括或预处理器指令,不包括ASM,它将允许循环,分支,函数调用,指针math(限于分配给模块的范围),位移,位域,强制转换,枚举,数组,整数,浮点数,string和math。 其他任何东西都是可选的。 示例实现 这里有一个伪代码片段来解释这个更好。 这里一个模块超过了它的内存分配配额,也创build了无限recursion。 buffer* transcodeToAVI_main( &in_buffer ) { int buffer[1000000000]; // allocation exceeding […]
我需要在我的网站上编译和运行用户提交的脚本,类似于键盘和ideone 。 我怎样才能沙盒这些程序,使恶意用户不会把我的服务器? 具体来说,我想locking在一个空目录内,防止他们读取或写入任何地方,消耗太多的内存或CPU,或从其他任何恶意的东西。 我将需要通过沙箱外部的pipe道(通过stdin / stdout)与这些程序进行通信。
我想让我的应用程序运行其他人的代码,即插件。 但是,我有什么select来使这个安全,所以他们不写恶意代码。 我如何控制他们能做什么或不能做什么? 我偶然发现JVM有一个“内build的沙盒”function – 这是什么,这是唯一的方法? 是否有第三方Java库制作沙箱? 我有什么select? 指南和例子的链接表示赞赏!
我看不到在新开发人员devise中禁用该选项的选项! 请帮助
我在App Store有一个应用程序,我想testing应用程序内购买。 我遵循苹果网站上描述的步骤,但我面临一些问题。 当我尝试在我的应用程序或设置/ iTunes和App Store中loginiTunes时,收到错误消息: iTunes帐户创build不允许。 此Apple ID不能与iTunes Store一起使用。 请稍后再试 我search了互联网,但我没有发现这一点。 看来我是第一个遇到这种错误的人。
我正试图提供一个仅脚本的解决scheme,通过浏览器读取客户机上文件的内容。 我有一个适用于Firefox和Internet Explorer的解决scheme。 这不是很好,但我现在只是在尝试: function getFileContents() { var fileForUpload = document.forms[0].fileForUpload; var fileName = fileForUpload.value; if (fileForUpload.files) { var fileContents = fileForUpload.files.item(0).getAsBinary(); document.forms[0].fileContents.innerHTML = fileContents; } else { // try the IE method var fileContents = ieReadFile(fileName); document.forms[0].fileContents.innerHTML = fileContents; } } function ieReadFile(filename) { try { var fso = new ActiveXObject("Scripting.FileSystemObject"); var fh = […]
我正在寻找一种简单而安全的方式来访问.NET应用程序的插件。 虽然我想这是一个非常普遍的要求,但我正在努力寻找符合我所有需求的任何东西: 主机应用程序将在运行时发现并加载其插件程序集 插件将由未知的第三方创build,所以他们必须被沙箱化,以防止他们执行恶意代码 一个常见的互操作程序集将包含主机及其插件引用的types 每个插件程序集将包含一个或多个实现通用插件接口的类 当初始化一个插件实例时,主机会以主机接口的forms传递一个对自身的引用 主机将通过其通用接口调用插件,插件可能会调用主机 主机和插件将以互操作程序集中定义的types(包括generics)交换数据, 我已经调查了MEF和MAF,但是我正在努力研究如何使它们中的任何一个适合这个法案。 假设我的理解是正确的,那么MAF就不能支持跨越它的隔离边界的genericstypes的传递,这对我的应用是非常重要的。 (MAF的实现也非常复杂,但是如果我能解决genericstypes问题,我会准备好解决这个问题)。 MEF几乎是一个完美的解决scheme,但似乎不符合安全要求,因为它将扩展程序集加载到与主机相同的AppDomain中,因此显然可以防止沙盒。 我已经看到了这个问题 ,它谈到了在沙箱模式下运行MEF,但没有描述如何。 这篇文章指出:“使用MEF时,您必须信任扩展程序不运行恶意代码,或者通过代码访问安全性提供保护”,但是,它并没有描述如何。 最后,有一篇文章介绍了如何防止未知的插件被加载,但这并不适合我的情况,因为即使是合法的插件也是未知的。 我已经成功地将.NET 4.0安全属性应用到我的程序集中,并被MEF正确地重视,但是我不明白这是如何帮助我locking恶意代码的,因为许多框架方法可能是安全威胁如System.IO.File方法)被标记为SecuritySafeCritical ,这意味着它们可以从SecurityTransparent程序集中访问。 我在这里错过了什么? 是否有一些额外的步骤可以告诉MEF它应该为插件程序集提供互联网特权? 最后,我还看到了使用单独的AppDomain创build自己的简单沙盒插件体系结构,如此处所述。 但是,据我所见,这种技术只允许我使用后期绑定来调用不可信程序集中类的静态方法。 当我试图扩展这种方法来创build我的一个插件类的实例时,返回的实例不能被转换为通用的插件接口,这意味着主机应用程序不可能调用它。 是否有一些技术可以用来跨AppDomain边界获得强types的代理访问? 我对这个问题的长度表示歉意。 原因是要展示我已经调查过的所有途径,希望有人能提出一些新的尝试。 Tim非常感谢你的想法