gpt4 book ai didi

virtual - 细粒度沙箱

转载 作者:行者123 更新时间:2023-12-04 07:02:51 25 4
gpt4 key购买 nike

场景:在字节码虚拟机(如 Java 或 Python)中运行的程序想要评估(通过动态编译为字节码然后运行)其代码自动生成或从外部提供的函数。

棘手的一点是该函数的代码是不可信的——它可能是由遗传编程等随机方法生成的,甚至可能是由对手提供的。因此,需要强制它表现为一个纯函数——它可以返回一个值,但它可能没有任何副作用,即它可能不会以任何方式改变任何程序的现有数据。

另一个棘手的问题是该函数可能有合法的需要调用程序的一些现有函数;其中一些函数可能有副作用,但只要它们被可疑函数调用,就应该防止这些函数实际产生任何持久影响。

此外,最好不要对可疑函数的编码风格施加限制,例如它可以自由地对它自己创建的任何数据结构执行破坏性更新,只需要它的整体效果纯粹是功能性的。

此外,该解决方案最好具有相当低的开销,因为这可能需要执行数十亿次;例如,最好避免为每个此类功能创建一个全新的虚拟机。

这不一定必须在现有的虚拟机(如 Java 或 Python)中可行;如果有必要围绕这个用例设计一个虚拟机,那就这样吧。

这个问题是否有任何已知的解决方案(或非解决方案,即已知不起作用的东西)?

最佳答案

我和许多其他人之前已经构建了用于遗传编程目的的语言。如果构建一种新语言是一种选择,那么这样的解决方案已经存在。由于有自动生成函数的技术,因此提供函数库应该是微不足道的。该系统实际上将构成一个沙盒环境。这些功能的任何副作用都将仅限于程序可访问的空间。

关于virtual - 细粒度沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1556065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com