ast.literal_eval(node_or_string) 有什么已知的方法吗?的评估实际上并不安全?
如果是,是否有可用的补丁?
(我已经知道 PyPy[sandbox],它可能更安全,但除非答案是肯定的,否则我的需求很小,我不会走那么远。)
最佳答案
documentation声明它是安全的,并且在 bug tracker 中没有与 literal_eval 的安全性相关的错误。 ,所以你可以假设它是安全的。
另外,according to the source ,literal_eval 将字符串解析为python AST(源树),并且仅当它是文字时才返回。代码永远不会被执行,只会被解析,因此没有理由存在安全风险。
关于Python 3,ast.literal_eval(node_or_string) 中是否有任何已知的安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710247/