【发布时间】:2015-02-25 19:14:42
【问题描述】:
我希望我的程序的用户能够在 python 中定义自定义脚本而不会破坏程序。我在看这样的东西:
def call(script):
code = "access modification code" + script
exec(code)
“访问修改代码”定义了一个范围,使得脚本只能访问它自己实例化的变量。是否可以这样做或具有类似功能的东西,例如创建一个具有自己作用域的新 python 环境,然后从它接收输出?
感谢您的宝贵时间:)
澄清编辑 “我想防止主动攻击和与用户脚本之外的程序变量的意外交互(因此隐藏所有全局变量)。用户脚本旨在很小并作为文本输入。用户脚本的返回需要立即,就好像它是程序原生的一样。”
【问题讨论】:
-
欢迎来到 StackOverflow!这是一个有趣的第一个问题,但我认为您需要详细说明“不破坏程序”的含义。您是在尝试防止意外损坏,还是主动攻击?另外,你需要接收什么样的输出,有多大?纯文本? 500 MB/s 的二进制流?您是希望无限期地等待该输出,还是希望超时?
-
我想防止主动攻击和与用户脚本之外的程序变量的意外交互(因此隐藏所有全局变量)。用户脚本旨在很小并作为文本输入。用户脚本的返回必须是即时的,就好像它是程序原生的一样。
-
这样就更清楚了。您可能需要编辑您的问题以包含此信息,以便所有人都能看到它