ITPub博客

首页 > > > Python2,该放手了-- 英国国家网络安全中心

Python2,该放手了-- 英国国家网络安全中心

作者:else 时间:2019-08-29 15:43:01 0 删除 编辑

'''

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彼此不相兼容,这种操作在业界相当罕见,因此坊间戏称其为两门语言。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2318/viewspace-3134000/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    271
  • 访问量
    19562