绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Python2,该放手了-- 英国国家网络安全中心
2019-08-29 15:43:01

'''

Python 是两门的编程语言。

'''

翻译整理 | 公 众 号 HackerHub

参考来源 | ncsc.gov.uk

“Python 是两门的编程语言”。能看懂这个笑话的人肯定是有故事的程序员。这到底是啥梗?看完自然就明白了。

Emm...醒醒,Python2还有百来天就停更了。

Python2 要停更说了很久啦,但终将还是快来了。在2020年1月1号,Python 2 将走完整个生命历程,不再受官方支持,不会再有bug修补,不会再有安全更新。

所以,如果你还在使用Python2.x,那现在是时候把你的代码换成Pyhton3的了。如果你继续使用这些不被支持的模块,那么你就是在拿你的组织和数据在冒险,因为迟早漏洞都会出现的,而这些漏洞却没有修。

这个问题的规模

下面是一个表格,来自Python 社区的Python Package Index,提供了10个受欢迎的Python 包的下载状态数据。

在这表格里的每一个包,都是每个月有百万以上的下载量,在这表格的数字,采自2019年6月份。

正如你所看到的的,大部分下载的包,都是Python2.x写的。好的一个,Flask,是3.x版本中下载多的,但尽管如此,Flash的下载量中仍然有三分之一属于Python2.x。

在这些下载中,即使只有一部分被用于活跃的项目,Python2的停更也会使得数百万的系统面临安全风险。

Python2 停更导致的问题

Python 2 停更会带来一大堆问题,下面这些你可能会遇到:

依赖:

很多的项目例如NumPy, Requests 和 TensorFlow 承诺在2020年停止对2.x的支持,当中有些项目已经做到了这点。

这就意味着,对于那些你喜欢的模块,你想使用新的功能,你就需要升级到Python3.拖得越久才更新,你的关于Python3的依赖需要改动的就越多,后导致更新也越来越难。

你可能会干扰到其他开发者:

如果你维护的库是别的开发者所依赖的,那么你可能就阻止他更新到3版本了。通过阻止别人升级,你就间接不自觉地使别人增加了安全风险。

你可能并没有在你的组织之外发布过任何代码,但也要考虑到你的同事可能在内部使用了你的代码。

你会错过新的功能。

Python 3 有很多功能新功能你可能错过的

对开发者的帮助

将代码由Python2改为Python3会是一项十分吃力的过程。幸亏,有一些工具和资源可以让这个过程更简单。

“Can I Use Python 3”

“Can I Use Python 3” 是一个检查你的项目,看看是否有东西阻止你升级到Python3的程序。使用这个程序去看看你需不需要替换掉一些仅在Python2.x上使用的库。在这种情形下,到这些库的页面上看是否有升级到Python3的计划。

https://github.com/brettcannon/caniusepython3

“2to3”

“2to3” 是一个Python程序,主要功能是尝试把Python2.x的源代码,弄成Python3版本。它通常会作为一个脚本和Python解析器一起安装。如果你想看看它会对你的源代码产生什么改动,你可以在不修改任何东西的情况下运行这个程序。注意,这个工具不是完美的,你仍然需要手动修改一些代码。

https://docs.python.org/2/library/2to3.html

“Supporting Python 3”

“Supporting Python 3” 是一本免费开源的电子书,可以用来指导添加Python3支持这个过程。这本电子书阐释了你可能会遇到的一些常见的迁移问题,并指出使用Python3特性来提升代码的方法。

http://python3porting.com/

“Six”

“Six” 是一个Python2 和Python3 都兼容的库,给开发者提供了一个既能兼容Python2 ,又能兼容Python3的方法。使用这个库,开发者可以选择哪个Python 版本的解析器可以用来运行你的代码。如果选择使用这个库,请考虑到Python版本可能很快就要升到4.0了(此文成文时,Python新版是3.7.4)。

https://github.com/benjaminp/six

何时迁移,不是一个选择题

如果把你的代码迁移到Python3不可能,另一个选择是给商业公司钱,让他们帮你维护Python2.

至少有一个公司公布了一个Python2的支持包,或Python3 的第三方支持包了。

有些Linux发行版包含Python2,将会被持续支持到系统停更的那天。例如,CentOS 7 和Debian 10 都用了Python2,并会被持续支持到2024年。

但不知道它的支持会是怎样的。

别忽视安全风险

在(英国)国家网络安全中心,我们一直强调打补丁的重要性。这不是一直都很容易做到的,但打补丁是一件维护你的技术安全的基础的事了。

WannaCry 流氓软件提供了一个经典案例,展示了运行不被支持的程序会发生什么事。它感染了超过23万台电脑,导致了全球很大的混乱。

近,Equifax 的网络攻击,导致了高达7亿美元的善后费。

若决定在Python2 停更后仍继续使用,你就要接受使用不被支持的程序所带来的一切风险,然而,一个安全的版本已经在向你招手了。

Python为啥被说是两门语言?因为Python2,Python3彼此不相兼容,这种操作在业界相当罕见,因此坊间戏称其为两门语言。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

IT知识联盟
创建时间:2019-07-05 15:30:45
分享收集到的大小知识点
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 王超
    栈主

小栈成员

查看更多
  • ?
  • youou
  • gamebus
  • chinacc
戳我,来吐槽~