如果只有使用本地变量,使用eval()是否有安全问题?

2024-04-23 14:52:45 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在从数据库加载一些“代码”。它主要是某个类的字符串表示

假设您有一个自定义类,看起来像MyClass(name=hello)

我的代码如下所示:

import MyClass
string_rep_of_class = 'MyClass(name=hello)'
eval(string_rep_of_class, {'__builtins__': None}, {'MyClass': MyClass})

因为我没有公开bultins,只公开本地MyClass,所以我缺少了一个安全问题,或者这是一个非常安全的方法

谢谢


Tags: of字符串代码nameimportnone数据库hello