保持旧 Python 代码健康和安全的更简单方法

一颗小胡椒2022-07-27 17:10:00

Python 有其优点和缺点,但它仍然被广泛使用。例如,即使有更合适的语言可供选择,Python 也经常用于数据处理任务。

为什么?好吧,Python 相对容易学习。具有科学背景的人可以比 C 语言更快地学习 Python。然而,Python 固有的平易近人也带来了一些问题。

每当 Python 更新时,都意味着大量的重构工作量,而这通常会被处理得很差——或者根本不处理。这会导致性能不佳和安全漏洞。但也许有更好的方法:一个让你的 Python 任务日复一日平稳、安全地运行的工具。让我们来看看。

它很慢,但它可以完成工作

Python 不是最快的语言,但尽管它有相对劣势,但您经常会看到它用于密集的数据处理操作。想想机器学习、计算机视觉,甚至是高性能计算 (HPC) 系统中的纯数学。

因此,尽管它在性能方面享有盛誉,但通常使用 Python 代码处理非常困难的工作负载,仅仅是因为它使用起来非常实用。如果你有科学或数学背景,你可以相对轻松地学习 Python 并编写自己的代码来完成这项工作。

但是,通常情况下,可以访问的东西也会带来很多风险。编写 Python 代码的经验不足的程序员可能会为更有经验的程序员认为理所当然的任务而苦苦挣扎。

重构是一件麻烦事……也是一种风险

像所有编程语言一样,Python 会频繁更新。例如,从 Python 2.7 到 Python 3.0 的转变带来了一大堆特性和改进。这也意味着由于 Python 工作方式的变化,为 Python 2.7 编写的任何内容都需要为 Python 3.0 “重构”。

重构是指程序员调整代码库以响应环境变化的方式,例如语言版本的变化,或者只是以某种形式改进现有代码。如果不进行重构,从 Python 2.7 到 Python 3.0 的转变通常意味着 Python 2.7 的代码不再那么好,甚至根本不能正常工作。

这就是问题所在:编写原始 Python 代码的用户可能没有重构的专业知识。毕竟,他们通常是科学家——而不是经验丰富的程序员。当没有经验的程序员试图调整代码时,存在性能下降和错误潜入的真正风险——有时只有在出现边缘情况时才可见。当 Python 代码用于关键的、24/7 的目的(如科学分析)时,小错误成为主要问题。

重构也可能导致意外的性能下降。即使只是 5% 的性能损失,执行不佳的代码更新也会在昂贵的按使用付费的 HPC 平台上迅速产生更大的费用。

坚持使用旧 Python?这是更大的风险

如果您考虑调整代码所涉及的艰苦工作和风险,那么用户经常选择坚持使用旧版本的 Python 也就不足为奇了。在过时的 Python 版本上运行现有代码可以避免很多挑战,因为您不需要重构:您将代码保持原样。

通常,软件供应商会这样做——仅在发布新版本的软件产品时更新他们的软件以匹配新的 Python 版本。如果您购买了特定版本——例如在 Python 2.7 上运行,那么您就会陷入困境,无论如何您都需要继续运行 Python 2.7。

这听起来不是什么大问题,但是依靠过时的、不受支持的构建块来进行计算是 DevSecOps 的噩梦。新的漏洞会出现,而所需的补丁就不会出现。因此,依赖旧版本的编程语言会给您的计算环境带来巨大的风险。

它几乎没有选择——或者有吗?

负责任的做法是在需要时更新 Python 版本并编辑在其上运行的代码,但没有一种轻松的方法可以做到这一点。实际上,由于缺乏资源,重构通常无法完成,并可能带来代价高昂的后果。

非常需要一种更好的方法,这就是有趣的地方。我们刚刚描述的围绕 Python 版本的情况在计算世界中很常见。例如,组织通常会运行官方供应商支持不再涵盖的 Linux 操作系统版本,冒着安全漏洞不会被修补以确保关键应用程序不会中断的风险。

这也是语言更新以及其他 IT 基础设施的问题。但是,近年来,先进的修补解决方案允许公司扩展多个组件的通常支持生命周期,从整个操作系统到特定的关键共享库。在TuxCare,我们开发了几种解决方案,可将旧软件的安全、可靠运行扩展到供应商的生命周期结束后。

安全可靠地运行较旧的 Python 应用程序

如果语言版本也可以这样做呢?好吧,您现在可以期待在旧版本的 Python 上运行旧的 Python 代码——但没有它所带来的风险。没有弃用的语言结构——也没有漏洞。

换句话说,对语言版本(例如 Python)的扩展生命周期支持正在成为现实。您很快就能保证您的 Python 代码安全可靠,而无需重写一行代码,只需获得对 Python 的扩展生命周期支持——它为您提供与完整版本升级相同的安全保护。

编程语言python
本作品采用《CC 协议》,转载必须注明作者和本文链接
斯坦福大学的一项研究发现,使用人工智能助手编写的代码比“手工代码”的安全性差很多,而且人工智能工具还会导致用户对其代码中的安全性过于自信。
测试数据表明,大约四分之三的Java和.NET应用都存在OWASP十大漏洞榜单上的漏洞,但仅55%的JavaScript代码库存在此类漏洞。
35万个项目受到影响通过分析影响,Trellix 研究人员发现该漏洞存在于数千个开源和闭源软件项目中。对其余存储库运行自动检查将受影响的项目数量增加到 65%,这表明存在广泛的问题。然而,这个小样本集仅作为估算 GitHub 上所有受影响的存储库的基准。稍后,它们将通过拉取请求添加到主项目中。
Java和Python这两种流行的编程语言包含类似的安全漏洞,可以利用这些漏洞发送未经授权的电子邮件并绕过任何防火墙防御。而且,由于这两个缺陷仍未修补,黑客可以利用这一优势设计针对关键网络和基础设施的潜在网络攻击行动。
安全公司Checkmarx报告称,自今年1月以来,共有八个不同的开发工具中包含隐藏的恶意负载。最近一个是上个月发布的名为"pyobfgood"的工具。与之前的七个软件包一样,pyobfgood伪装成一款合法的混淆工具,开发人员可以使用它来防止代码的逆向工程和篡改。一旦执行,它会安装一个恶意负载,使攻击者几乎完全控制开发人员的机器。
Python 有其优点和缺点,但它仍然被广泛使用。也是一种风险像所有编程语言一样,Python 会频繁更新。
最全的Python开发库!
2022-07-01 08:24:52
Web 框架主要用于网站开发,可以实现数据的交互和业务功能的完善。使用 Web 框架进行 网站开发的时候,在进行数据缓存、数据库访问、数据安全校验等方面,不需要自己再重新实现,而是将业务逻辑相关的代码写入框架就可以。
软件供应链攻击已经成为越来越流行的恶意软件分发方法。例如,上周在Node.js包管理器(npm)代码库中发现了一系列旨在收集Discord令牌的恶意包。这些软件包可用于接管用户的帐户和服务器。
uDork并不会对任何服务器执行攻击行为,它只会使用预定义的Dork或exploit-db.com提供的官方列表来进行搜索和查询。关于Google HackingGoogle Hacking的含义原指利用Google搜索引擎搜索信息来进行入侵的技术和行为,现指利用各种搜索引擎搜索信息来进行入侵的技术和行为。
一颗小胡椒
暂无描述