17611538698
webmaster@21cto.com

PHP 8.0 已停服,部分网站可能受到攻击

编程语言 0 295 2023-12-11 06:33:09

图片

导读:PHP 8.0 已经 2023 年 11 月 26 日终止生命周期 (EOL),将不再接收任何反馈,也不再更新或发布补丁。

背景

PHP 8.0 在 2020 年 11 月 26 日发布,带来了许多新功能和改进,例如命名参数、属性、构造函数属性提升、匹配表达式、nullsafe 运算符、JIT 等。

PHP 8.0 的停产意味着使用它的网站如果不升级 PHP 版本,可能面临潜在的安全风险与兼容性问题。

安全风险包括:黑客可能利用的漏洞来危害网站或其数据。兼容性问题包括由于 PHP 语言或底层 Web 服务器软件的更改而可能发生错误或故障。

PHP 使用版本之数据

根据 W3Techs 的数据,在所有使用 PHP 的服务器端编程语言的网站中,有 20.6% 使用 PHP 8 版本。

图片

图片

PHP 8 是继 7 之后第二受欢迎的 PHP 版本,有约 61.5% 的已知网站在使用 PHP 8。

而PHP 7.4 已经于 2022 年 11 月 28 日停止升级。可以看到,任何使用 8.1 之前的 PHP 的开发者都应该升级。

最新版本PHP 8.3于 2023 年 11 月 23 日发布,将在 2025 年之前获得官方支持,并在 2026 年之前一直提供安全支持。

PHP8.3的新功能和特性

PHP 8.3 的新功能和变化包括:

  • 类型化类常量:现在可以显式声明类常量的类型,而不再依赖推断值。有助于防止错误,并提高可读性

  • 动态类常量和枚举成员获取支持:现在可以使用变量来访问类常量或枚举成员,而不是使用constant() 函数。这可以使代码更加简洁、富有表现力

  • json_validate() 函数:现在可以使用此函数来检查字符串是否为有效的 JSON 格式,而无需再对其进行解码。 这对于验证 JSON 输入或输出非常有用

  • 随机扩展添加:随机扩展已通过新方法和类得到增强改进,例如 Randomizer::getBytesFromString()、Randomizer::getFloat() 和 Randomizer::nextFloat()。这些可以帮助开发者生成随机字节、浮点数和整数,并具有更大的灵活性与控制能力。

  • 添加 mb_str_pad():现在可以使用此函数用另一个字符串将多字节字符串填充到一定长度。这对于格式化或对齐多字节文本非常有用。

  • 添加 #[\Override] 属性:现在可以使用此属性来标记重写父方法或接口方法的方法。这可以避免拼写错误和使代码更加清晰一致

  • 只读属性的深度克隆:现在可以在 __clone() 方法中修改一次只读属性,以启用只读对象的深度克隆。可以帮助开发者创建副本具有复杂状态的对象

小结

升级到 PHP 8.3 不仅是安全性和兼容性的问题,也是性能和创新的向征。PHP 8.3 更快、更可靠、更富表现力,能够让开发者编写更清晰、更高效的代码。

使用 PHP 8.0 或更早版本的网站应尽快升级,以避免潜在安全问题,并享受最新版本的性能等优势。

作者:万能的大雄

评论