首页 > 解决方案 > 如果仅将 eval() 与本地人一起使用,是否存在安全问题?

问题描述

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

所以假设你有一个看起来像的自定义类MyClass(name=hello)

我的代码看起来像这样:

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

因为我没有公开 bultins 并且只公开本地 MyClass 是否存在我遗漏的安全问题或者这是一种非常安全的方法?

谢谢

标签: pythonclasseval

解决方案


推荐阅读