python - 如果仅将 eval() 与本地人一起使用,是否存在安全问题?
问题描述
所以我正在从数据库中加载一些“代码”。它主要是某个类的字符串表示。
所以假设你有一个看起来像的自定义类MyClass(name=hello)
我的代码看起来像这样:
import MyClass
string_rep_of_class = 'MyClass(name=hello)'
eval(string_rep_of_class, {'__builtins__': None}, {'MyClass': MyClass})
因为我没有公开 bultins 并且只公开本地 MyClass 是否存在我遗漏的安全问题或者这是一种非常安全的方法?
谢谢
解决方案
推荐阅读
- mysql - 从 Docker 容器运行 Spring Boot 应用程序时出错
- php - 从字符串的末尾开始,一旦到达字符组的第一次出现,如何停止捕获?
- azure - Azure 数据工厂与 App Insight
- python - 元素不可点击,因为另一个元素在 python 中隐藏了它
- debugging - 使用调试器从应用程序中删除函数调用
- python - python中如何弹出消息不干扰后续进程?
- database - 如果结果没有在客户端存根处解包,RPC 模型会发生什么?
- android - 在回收站视图中保留编辑文本
- c++ - VS2017:支持 WinXP 的增强二进制文件?
- windows-10 - 在 Windows Anaconda python 上安装 pytorch 时出现“找不到包错误”