是否可以将 .Net DLR 托管在“防白痴”沙箱中?

2024-01-18

我想以这样一种方式托管动态语言运行时 (DLR),以便在其中运行任意脚本的用户无法关闭该进程?

The DLR 托管规范 https://web.archive.org/web/20110814193317/http://dlr.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=127516描述如何在单独的应用程序域中托管 DLR。这允许拆除和卸载脚本运行时并通过 CAS 限制某些操作(例如,我可以限制文件系统访问或禁止使用反射)。

但还有其他方法吗,例如:

  • 限制脚本使用的最大内存量?
  • 限制脚本创建的线程数量?
  • 检测死锁脚本?

我认为这种细粒度的控制可以使用非托管 .net 托管 API https://learn.microsoft.com/en-us/dotnet/framework/unmanaged-api/hosting/clr-hosting-interfaces这是为 SQL Server 开发的。这是要走的方向吗?是否有针对这种通用 .net 沙箱的开源项目?

以下是我发现的一些可能有用的参考资料:

  • 探索使用 .NET Framework 2.0 安全托管不受信任的加载项的技术 https://learn.microsoft.com/en-us/archive/msdn-magazine/2005/november/how-to-safely-host-untrusted-add-ins-with-the-net-framework-2-0
  • 主机保护 http://dlr.codeplex.com/Thread/View.aspx?ThreadId=216441DLR 讨论列表上的话题
  • 使用主机保护 https://learn.microsoft.com/en-us/archive/blogs/shawnfa/using-host-protection(.Net 安全博客)

看一下玻璃容器 https://web.archive.org/web/20171022165052/http://terrarium2.codeplex.com:80/-- 在这款游戏中,您可以使用 .NET 语言构建自己的自主小动物,并将它们连同描述它们的程序集一起传送到其他联网计算机。目标是让您的小动物接管整个生态系统,要么通过杀死其他一切,要么通过战略性地管理食物资源。

我记得,任何花费超过 0.n 秒“思考”或 n kb 内存的生物都会被删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将 .Net DLR 托管在“防白痴”沙箱中? 的相关文章

  • 习惯从类型继承元类?

    我一直在尝试理解 python 元类 因此一直在浏览一些示例代码 据我了解 Python 元类可以是任何可调用的 所以 我可以让我的元类像 def metacls clsName bases atts return type clsName

随机推荐

  • 使用 PadRight 方法填充字符串

    我正在尝试在 C 中的字符串末尾添加空格 Trip Name1 PadRight 20 还尝试过 Trip Name1 PadRight 20 这些似乎都不起作用 不过我可以用任何其他字符填充字符串 为什么 我应该更具体 这是完整的代码 l
  • 在 Laravel 5 中动态编辑 .env 是个好主意吗?

    我正在构建一个管理面板 所以我需要做一些核心设置我的 Laravel 5 应用程序 如 smtp 设置等 可通过前端界面配置给最终用户 我最初的想法是使用数据库作为设置存储和缓存 以避免每次访问配置值时发出数据库调用 然而 看来 外观在配置
  • 在摘要报告侦听器文件名中使用时间函数

    在 JMeter 5 1 1 中 我有一个摘要报告 我试图将其保存为带时间戳的文件 文件名值如下所示 D Load Tests example com Results time yyyy MM dd HH mm ss summary csv
  • 在类 Unix 系统上获得以秒或毫秒为单位的正常运行时间

    我需要一种方法 可以给出自系统启动以来经过的毫秒数或秒数 我可以解析 proc uptime 但我不能因为这个 I 0 和解析而损失性能 我正在使用 Linux 和 C C 也许我可以添加一些 Qt Boost 但最好是原生的 为什么你读不
  • Entity Framework 4 与 LINQ to SQL,适用于中小型应用程序,与 SQL Server 配合使用

    早在 4 月份 VS2010 发布时 我就在 Stack Overflow 上看到过一些关于 L2S 与 EF4 的讨论 即 既然 Entity Framework 4 0 已经发布 就转储 Linq To Sql 吗 https stac
  • 尝试在 Flutter 上运行此处示例时出错

    所以我正在尝试将 Here 集成到我的 flutter 应用程序中 所以我正在关注这个页面flutter sdk 导航 https developer here com documentation flutter sdk navigate
  • 更新到 Mac OSX 10.9.4 后找不到 npm 命令

    将操作系统更新到 Mavericks 后 我无法在终端上执行 npm 命令 当我尝试这个时 node usr local lib node modules npm bin npm cli js v它正在工作并显示版本 1 4 3 我不知道这
  • Flash 功能中的冲突检测? (命中测试对象)

    你好 所以我最近一直在使用hitTestObject检测我正在制作的 Android 应用程序中的碰撞 经过一番测试后 我意识到游戏正在检测 假 碰撞 我的意思是它正在检测碰撞not当物体的像素接触时 但是 经过一些研究后 我发现boxes
  • 如何让每个
  • 标签一个接一个地慢慢出现
  • 我希望当页面加载时列表项慢慢地一个接一个地出现在屏幕上 这是jquery中的代码 我使用过show 但它不起作用 我确实在这里查找问题 其中一些正在使用附加方法 但这不是我要寻找的 html ul li A li li B li li C
  • Angular 4自带的form element组件

    我是角度初学者 我可能需要一些帮助 首先 我将展示它如何工作 然后我将写下我希望它如何工作 这是使用 ngModel 时的常规方式
  • 如何在具有可变宽度 Unicode 字符的 Swift 字符串上使用 NSRegularExpression?

    我无法获取NSRegularExpression匹配字符串中含有较宽 Unicode 字符的模式 看起来问题出在范围参数上 Swift 计算单个 Unicode 字符 而 Objective C 将字符串视为由 UTF 16 代码单元组成
  • 如何使用CPU在深度睡眠模式下执行任何操作

    我是新来的android 我花了大约三个星期的时间来处理我的申请 我需要在正常模式下发送和接收数据包sleep mode My app必须交换数据 5 秒 我尝试使用alarmmanager但在 android 5 上它不起作用 在andr
  • MongoDB InvalidDocument:无法对对象进行编码

    我正在使用 scrapy 来抓取博客 然后将数据存储在 mongodb 中 起初我得到了 InvalidDocument 异常 对我来说很明显的是数据的编码不正确 因此 在持久化对象之前 在我的 MongoPipeline 中 我检查文档是
  • 如何合并数组并保留键?

    我有两个数组 array1 array a gt 1 b gt 2 c gt 3 array2 array d gt 4 e gt 5 f gt 6 a gt new value 123 gt 456 我想合并它们并保留键和顺序而不是重新索
  • Xcode 在打字时滚动文本

    Xcode 今天似乎做了一些烦人的事情 我喜欢编辑源代码 这样我就可以在 Xcode 窗口的垂直中心大致输入内容 我不喜欢在窗口底部或顶部附近键入 因为它隐藏了我正在忙于编辑的代码之前或之后的代码 最近 在编辑实现文件时 Xcode 习惯于
  • Oracle CONNECT BY 递归子到父查询,包括自引用的最终父级

    在下面的例子中 id parent id A A B A C B select id parent id from table start with id A connect by nocycle parent id prior id I
  • 在 Access 中导入 .sql 文件

    我需要导入使用 MySql 创建的 sql 数据库备份文件 有办法执行此操作吗 您无法将 MySQL 备份恢复到任何其他数据库系统中 如果要将 MySQL 数据导入到 Access 中 可以将其全部导出到 CSV 文件中 然后将其导入到 A
  • UWP TextBox 文本绑定不起作用

    我在 UWP 中使用 TextBox Text 绑定时遇到一些问题 我已经从事 WPF 多年 通常知道我在 XAML 中做什么 但无法让此绑定发挥作用 我在 XAML 中的同一范围内有一个文本框和一个按钮
  • 如何避免打开两个浏览器窗口?

    我想避免打开两个应用程序窗口 或选项卡 的可能性 是的 如果我的应用程序 LAMP Javascript 安装在http www domain com并且用户正在浏览页面http www domain com user 他 她无法打开另一个
  • 是否可以将 .Net DLR 托管在“防白痴”沙箱中?

    我想以这样一种方式托管动态语言运行时 DLR 以便在其中运行任意脚本的用户无法关闭该进程 The DLR 托管规范 https web archive org web 20110814193317 http dlr codeplex com