栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

“ safe_eval”真的安全吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

“ safe_eval”真的安全吗?

我想取决于您对保险柜的定义。许多安全性取决于您传入的内容以及上下文中允许通过的内容。例如,如果传入文件,则可以打开任意文件:

>>> names['f'] = open('foo', 'w+')>>> safe_eval.safe_eval("baz = type(f)('baz', 'w+')", names)>>> names['baz']<open file 'baz', mode 'w+' at 0x413da0>

此外,环境非常受限制(您不能传递模块),因此,您不能简单地传递诸如re或random之类的实用程序功能的模块。

另一方面,您不需要编写自己的解析器,只需为python ast编写自己的评估器即可:

>>> import compiler>>> ast = compiler.parse("print 'Hello world!'")

这样,希望您可以实现安全导入。另一个想法是使用Jython或IronPython并利用Java / .Net沙箱功能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391351.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号