前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 2 和Python 3 安全性方面的比较

Python 2 和Python 3 安全性方面的比较

作者头像
De4dCr0w
发布2019-02-27 15:39:06
7490
发布2019-02-27 15:39:06
举报

异常处理机制

Python 3是默认开启异常链的,当异常发生的时候,会完整地显示回溯路径和异常细节。而Python 2 默认下是不显示的。

输入函数

Python 2 提供了eval()函数,但这并不是一个安全的函数,因为它会将字符串当做有效的表达式来求值并返回计算结果 例如,输入以下字符串,就会执行显示当前目录文件的命令:

代码语言:javascript
复制
__import__('os').system('dir')

Python 2 提供的input函数和eval函数类似,也是不安全的,所以Python 2应该尽量不使用这两个函数,而用raw_input来代替

而在Python 3中的input函数就是Python 2中的raw_input,是安全的。

但是如果在Python 2环境中运行Python 3,那么input就会存在问题。

总结如下:

函数

Python 2

Python 3

eval()

不安全

不安全

input()

不安全

和Python 2的raw_input类似

raw_input()

暂时安全

已经移除

整数除法

在Python 2 中整数除法总是返回结果的整数部分,就是地板除。而在Python 3中用//实现地板除,而/是真除法,会保留小数部分。那么不安全的地方有可能发生在Python 3程序在Python 2 环境里运行的时候,这得放在具体的环境中去分析。

默认编码

Python 2 默认使用ASCII编码,而ASCII编码只能表示256个字符。而Python 3默认使用的是Unicode编码,支持超过128000个字符。 这种差异可能导致网络钓鱼。所以在Python 2和3环境切换时要注意该问题,尽量都转成Unicode码。

总结

Python 2 官方支持到2020年,所以可以计划使用Python 3了。

参考链接:https://snyk.io/blog/python-2-vs-3-security-differences/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异常处理机制
  • 输入函数
  • 整数除法
  • 默认编码
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档