建议使用更加安全的ast.literal_eval去替代eval
前言
如果大家想要在python中将字符串转换成列表,数字,字典等操作,都会想到使用eval()
,确实这个函数很好用,但是它却存在一定的安全性
eval的漏洞
如果用户使用如下的代码
open(r'D://filename.txt', 'r').read()__import__('os').system('dir')__import__('os').system('rm -rf /etc/*')
eval就会不管三七二十一,显示你电脑目录结构,读取文件,删除文件…..如果是格盘等更严重的操作,她也会照做不误!
更详细的情况可以参考这里
如何避免这个漏洞
可以使用ast.literal_eval
,这个函数具有同样的eval()
的功能,但是会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算。
stackoverflow中的解释
参考
https://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
https://blog.csdn.net/Jerry_1126/article/details/68831254
https://stackoverflow.com/questions/15197673/using-pythons-eval-vs-ast-literal-eval
建议使用更加安全的ast.literal_eval去替代eval相关推荐
- python3 eval安全替代函数ast.literal_eval的区别
python3 eval安全替代函数ast.literal_eval 一.eval函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果. ...
- ast.literal_eval
eval函数在python中做数据类型的转换还是很有用的.它的作用就是把数据还原成它本身或者是能够转化成的数据类型. 那么eval和ast.literal_val()的区别是什么呢? eval在做计算 ...
- python3 eval安全替代函数ast.literal_eval
一.eval函数 eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果. 示例: >>> s='8*8' >>& ...
- ast.literal_eval(转)
eval函数在Python中做数据类型的转换还是很有用的.它的作用就是把数据还原成它本身或者是能够转化成的数据类型.那么eval和ast.literal_val()的区别是什么呢?本文将大家介绍关于P ...
- 李开复建议:想创业的青年先去小公司磨练
在李开复的身上有很多闪光的标签--卡内基梅隆大学计算机专业博士,曾在苹果.微软.谷歌等担任要职.然而,让人印象最深刻的莫过于"创业导师". 这位祖籍四川的台湾人,求学时远渡重洋.无 ...
- js文本内容显示6行,超出6行出现显示更多按钮,css样式超出行数只能使用...去替代
js处理文本内容显示6行,超出6行出现显示更多按钮,对于网上说的css样式处理,基本上都是超出6行使用-去处理,不符合需求,先看结果,再看需求:如下 先看实现结果,如下图所示: 需求:产品经理提出详情 ...
- 基于Python实现成交量的股票数据分析系统【100010993】
基于成交量的股票数据分析系统 1. 数据获取 1.1. 实验环境搭建 系统及使用的语言: Windows 10 专业版 1903 操作系统版本: 18362.356 Python 3.7.3 64-b ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
- python中错误useofeval_Python-使用pd.eval()在熊猫中进行动态表达评估
小编典典 这个答案潜入各种特性和功能的提供pd.eval,df.query和df.eval. 设置 示例将涉及这些DataFrame(除非另有说明). np.random.seed(0) df1 = ...
最新文章
- VB6 实现命令行调用时附着到原控制台
- Android学习:自定义ViewGroup方法总结
- winform 自适应屏幕分辨率具体操作和注意事项
- SpringDataJpa报错: Table 'XX.hibernate_sequence' doesn't exist
- 明源云创CI/CD技术演进
- 1-4 TCP/IP协议族
- 网站检测之防注入绕过的十一种技巧
- 渗透测试入门4之内网跨边界应用
- Gibbs 采样的应用
- 德芙背后刻骨铭心的痛
- 同样一个网址,用电信网络和中国移动的手机网络,下载速度相差巨大
- mysql sqlyog 备份计划_SqlYog 自动备份数据库
- 计算机 |符号名,电脑键盘符号大全|电脑键盘符号怎么打
- Dell电脑,Win10系统,插入耳机没反应或者说听筒没声音该怎么解决?
- 数学建模中各种评价类模型的优点和缺点总结
- TRICKLE轻量级的用户空间带宽控制管理工具
- 基于CCS工程MSP430串口升级(二)
- 通过Hook进行游戏的全局加速
- Xilinx Arch PCIE卡
- FreeType2使用总结