python eval函数的安全替换品ast.literal_eval

我们知道,要将一个字符串转换成对应的python类型可以使用eval()函数,但是这个函数有一定的安全漏洞(详细请参阅博客 python中eval函数的使用及安全性问题),容易被不法人员利用,因此python中出了一个安全处理方式ast.literal_eval(),先看下Stack Overflow和Python官网上对这个函数的解释
Stack Overflow

Python 
简单点说ast模块就是帮助Python应用来处理抽象的语法解析的。而该模块下的literal_eval()函数:则会判断需要计算的内容计算后是不是合法的Python类型,如果是则进行运算,否则就不进行运算。
比如下面查看系统文件的操作就会被拒绝,而只会执行合法的python类型,从而大大降低了系统的危险性

所以出于安全考虑,对字符串进行类型转换的时候,最好使用ast.literal_eval()

猜你喜欢

转载自blog.csdn.net/zoulonglong/article/details/80567680