gpt4 book ai didi

python - “沙箱”用户定义的Python函数

转载 作者:行者123 更新时间:2023-12-01 07:36:15 36 4
gpt4 key购买 nike

我希望允许用户定义自己的函数以在程序中使用,但是,我不希望他们破坏东西 - 理想情况下我想将其限制为核心语言函数,也许是 数学模块

自定义函数将是这样的(在 user_function.py 中定义,并导入到应用程序中)

def user_function(arg1, arg2, arg3):
if arg1 < 2.0:
return 5.0
if arg2 > 3.0:
return 2.0
return arg3

我不希望他们能够做这样的事情(例如访问 API key 、修改外部变量、进行 os.system() 调用等):

def user_function(arg1, arg2, arg3):
with open("program_dump.txt", "w") as f:
di = dict(globals())
di.update(locals())
json.dump(di, f)
return 2.0

有没有一种合理的方法来处理这个问题,而又不会引入巨大的漏洞空间?或者我最好的选择是想出一些伪标记语言并解析它?

最好兼容 python 2.7

最佳答案

更新:我发现了 RestrictedPython,并认为这是最好的方法 - 但欢迎任何其他建议

关于python - “沙箱”用户定义的Python函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979905/

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