直接使用eval函数很危险

Published on 2018 - 01 - 23

eval简介:

eval可以将括号内的内容直接当作python命令来执行,例如:

"""
下列代码 我们只要输入 1+1 就可以看到返回了2
由此判断 eval将用户的输入执行了python语句
"""
print(eval(input("请输入密码")))

为什么使用eval很危险

在开发时千万不要使用eval直接转换input的结果

上面的示例代码提示用户输入时,我们输入:

__import__('os').system('ls')

等价代码

import os
os.system("终端命令")

可以看到返回了python所在目录下的所有内容,os模块的对系统的操作功能很强大,直接使用eval转换input的结果是很危险的。