1
5
简而言之:不。 说明:多年来,python专家一直试图为python构建一个沙箱。沙盒的问题是,你需要做一些事情来完成任何IO(即能够在沙盒和应用程序之间传输数据)。他们没有找到一种自动的,蟒蛇式的方法来做这件事。或者,您无法与插件交换数据,或者自省将允许在应用程序中遍历对象树->访问您喜欢的所有内容。 想象一下您的想法:插件调用您编写的一些python代码。这可能意味着调用方法或函数。这意味着你必须给我一个有效的方法或函数对象。从方法或函数对象,我可以得到你的模块对象。从你的模块,我可以得到所有的符号(即导入)。从那里,我可以做你的模块能做的一切(至少)。 See this article 一些指点。 |
2
2
在普通python进程中运行的python代码不能被沙盒化,因为您总是可以爬出,但是您可以沙盒化整个python解释器。 例如,pypy支持沙箱: http://codespeak.net/pypy/dist/pypy/doc/sandbox.html 如果愿意,您可以编写一个python库,在一个安全的pypy-c实例中运行一个python脚本,该实例具有一些用于传输您信任的数据的共享内存和一些触发程序中事件的信号。 您还可以使用selinux之类的东西对普通的嵌入式cpython解释器进行沙箱处理,我相信这些东西可以在代码中使用(通常是系统管理的东西),并且在大多数linux发行版或其他windows替代版本上都受支持,这取决于您的平台。谷歌Chrome有一些沙盒代码,如果你愿意挖掘通过巨大的代码库。 |
3
1
这是一个很老的问题,但也许qtscript就是答案。但是,我不知道您是否可以对其进行沙箱处理,以及qtscript是否足够强大,适合您的应用程序。 |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |