Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

PHP 8.0 sa 8.5: l-aktar novitajiet importanti

Minn match u JIT f'PHP 8.0 sa operatur pipe u estensjoni URI f'PHP 8.5: in-novitajiet ta' kull verżjoni, il-ġebel tal-iskoss fl-aġġornament u x'jgħoddu għas-sigurtà.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: PHP 8.0 (Novembru 2020) ġabet argumenti msemmija, attributi, tipi union, match, l-operatur nullsafe u kompilatur JIT. Wara segwew kull sena: 8.1 b'enums u fibers, 8.2 b'klassijiet readonly, 8.3 b'kostanti tal-klassijiet bit-tipi, 8.4 b'property hooks u 8.5 b'operatur pipe u estensjoni URI. Kull verżjoni tiddeprekata wkoll affarijiet qodma. Fl-aġġornament għalhekk jgħoddu t-testijiet, u għas-sigurtà jgħodd fuq kollox li tħaddmu fergħa appoġġjata bl-aħħar stat tal-patches.

In-novitajiet ta' PHP 8 fil-qosor

It-tabella tiġbor il-punti ewlenin tal-paġni tar-rilaxx ta' php.net. Dati tal-ewwel pubblikazzjoni skont php.net.

Verżjoni Ħarġet L-aktar novitajiet importanti Għażla ta' deprekazzjonijiet u kisriet
8.0 26/11/2020 argumenti msemmija, attributi, Constructor Property Promotion, tipi union, match, ?->, JIT 0 == 'foobar' issa huwa false, żbalji tat-tipi minflok twissijiet
8.1 25/11/2021 enums, proprjetajiet readonly, First-Class-Callables strlen(...), new fl-inizjalizzaturi, tipi intersection, never, fibers –
8.2 08/12/2022 klassijiet readonly, tipi DNF, null/false/true bħala tipi, estensjoni Random, kostanti fit-traits, #[\SensitiveParameter] proprjetajiet dinamiċi ddeprekati
8.3 23/11/2023 kostanti tal-klassijiet bit-tipi, #[\Override], json_validate(), mb_str_pad(), php -l għal diversi fajls –
8.4 21/11/2024 property hooks, viżibbiltà asimmetrika, #[\Deprecated], API DOM ġdida b'HTML5, BcMath\Number, array_find(), lazy objects parametri nullable impliċiti ddeprekati; IMAP, OCI8, PDO_OCI, pspell għal PECL
8.5 20/11/2025 operatur pipe, estensjoni URI, Clone With, #[\NoDiscard], array_first()/array_last() operatur backtick iddeprekat, disable_classes imneħħi

PHP 8.0 u 8.1: il-pass il-kbir

PHP 8.0 għamlet il-lingwa b'mod sensibbli aktar stretta u aktar espressiva. Skont il-paġna tar-rilaxx, il-funzjonijiet interni issa jitfgħu b'mod konsistenti TypeError jew ValueError, minflok ma jagħtu biss twissijiet. It-tqabbil bejn numri u ktajjen ta' karattri isegwi regoli aktar nodfa.

<?php
// PHP 8.0: match jqabbel b'mod strett u ma jeħtieġx break
$status = 404;
echo match (true) {
    $status >= 500 => 'Serverfehler',
    $status >= 400 => 'Anfragefehler',
    default        => 'in Ordnung',
};

// PHP 8.0: operatur nullsafe
$land = $bestellung?->kunde?->adresse?->land;

PHP 8.1 ġabet enums, jiġifieri tipi ta' enumerazzjoni b'valuri fissi, u proprjetajiet readonly li jistgħu jiġu ssettjati darba biss:

<?php
enum Rolle: string {
    case Leser = 'leser';
    case Redakteur = 'redakteur';
    case Admin = 'admin';
}

final class Benutzer {
    public function __construct(
        public readonly string $name,
        public readonly Rolle $rolle,
    ) {}
}

$b = new Benutzer('Erika', Rolle::from('redakteur'));

Rolle::from() jitfa' żball għal valuri mhux magħrufa. Dan jipprevjeni li ktajjen arbitrarji ta' karattri minn formoli jgħaddu bħala rwol. Min minflok żball jeħtieġ valur vojt juża Rolle::tryFrom(), li jirritorna null għal valuri mhux magħrufa.

Ġodda wkoll f'8.1 huma l-fibers, bażi għal proċessi konkorrenti li fuqha jibnu libreriji għal ipproċessar asinkroniku. Fit-tħaddim normali ta' websajt wieħed jinduna ftit bihom, fi frameworks moderni u queues iżjed.

PHP 8.2 u 8.3: tindif u sigurtà

PHP 8.2 iddeprekat proprjetajiet dinamiċi. Min jassenja lil oġġett proprjetà mhux iddikjarata jirċievi avviż; b'#[\AllowDynamicProperties] dan jista' jitħalla għal klassijiet individwali. Plugins eqdem għalhekk spiss joħolqu ħafna messaġġi fil-log.

Interessanti għas-sigurtà huma l-estensjoni ġdida Random, li r-randomizer standard tagħha, skont il-paġna tar-rilaxx, juża ġeneratur kriptografikament sigur ta' numri każwali, u l-attribut #[\SensitiveParameter], li jaħbi valuri bħal passwords fl-stacktraces. Aktar dwar valuri każwali siguri taħt Numri każwali u tokens siguri f'PHP.

PHP 8.3 żiedet kostanti tal-klassijiet bit-tipi, l-attribut #[\Override] kontra żbalji tat-tajpjar meta jiġu sorpassati metodi u json_validate(), li jivverifika JSON mingħajr ma jiddekodifikah kompletament.

PHP 8.4 u 8.5: għodod moderni tal-lingwa

PHP 8.4 introduċiet property hooks, jiġifieri loġika direttament fuq il-proprjetajiet, u viżibbiltà asimmetrika bħal public private(set). Żiedu wkoll API DOM ġdida b'appoġġ għal HTML5 u funzjonijiet bħal array_find(), array_any() u array_all(). Skont il-paġna tar-rilaxx, l-estensjonijiet IMAP, OCI8, PDO_OCI u pspell ġew imċaqalqa mill-qalba għal PECL. Applikazzjonijiet li jużaw pereżempju IMAP imbagħad jeħtieġu pakkett separat.

PHP 8.5 ġabet l-operatur pipe, li jorbot sejħiet minn xellug għal lemin:

<?php
$slug = '  Neue Produkte 2026  '
    |> trim(...)
    |> strtolower(...)
    |> (fn(string $s): string => str_replace(' ', '-', $s));
// Riżultat: "neue-produkte-2026"

Ġdida wkoll hija estensjoni URI li tfarrak indirizzi skont RFC 3986 u l-istandard WHATWG-URL. Dan huwa rilevanti għas-sigurtà, għax URLs ippruċessati b'mod inkonsistenti huma kawża magħrufa ta' verifiki evitati. L-operatur backtick bħala forma qasira ta' shell_exec() huwa iddeprekat, is-setting disable_classes ġie mneħħi. Min użah għandu jadatta t-tisħiħ tiegħu.

Novitajiet, aġġornamenti u PHP2Shell

Funzjonijiet ġodda tal-lingwa ma jagħlqux vulnerabbiltajiet fl-interpretatur. Kontra PHP2Shell jgħin biss l-aħħar stat tal-patches tal-fergħa rispettiva: 8.5.12, 8.4.27, 8.3.36 jew 8.2.35. Għal PHP 8.1 u 8.0 m'hemmx aktar aġġornamenti uffiċjali. Min hu mwaħħal hemmhekk irid jaġġorna, u hawnhekk in-novitajiet jgħinu ftit, il-kisriet ferm.

Triq sigura ta' aġġornament fi ħames passi:

  1. Stabbilixxu l-verżjoni fil-mira, f'konformità mar-rekwiżiti tas-sistema tal-manifattur u maċ-ċiklu tar-rilaxx.
  2. Ġibu d-dipendenzi permezz ta' Composer u l-plugins fuq stati kompatibbli.
  3. Ivverifikaw il-kodiċi b'analiżi statika u testijiet kontra l-verżjoni fil-mira.
  4. Ipprovawh f'ambjent tat-test b'kopja tad-dejta tal-produzzjoni, evalwaw il-logs għal deprekazzjonijiet.
  5. Aqilbu, erġgħu ibdew il-proċessi kollha ta' PHP u ddokumentaw l-istat.

Sfond dwar it-tipi jagħti It-tip sistema ta' PHP.

Kif jgħin PHP SOS konkretament?

  • Nivverifikaw il-kompatibbiltà: Neżaminaw il-kodiċi u l-estensjonijiet tagħkom għal kisriet mal-verżjoni fil-mira.
  • Nwettqu l-aġġornament: Bil-migrazzjoni għal verżjoni appoġġjata ta' PHP inġibu l-applikazzjonijiet fuq verżjoni ogħla, ittestjati.
  • Nadattaw it-tisħiħ: Nissostitwixxu settings imneħħija bħal disable_classes b'alternattivi effettivi.
  • Nżommu l-istat tal-patches: Wara l-aġġornament inżommu l-fergħa aġġornata u niddokumentaw kull restart.

Mistoqsijiet frekwenti

Liema verżjoni ta' PHP 8 għandi nuża llum?

Għal proġetti ġodda PHP 8.4 jew 8.5, għax huma appoġġjati l-itwal: 8.4 sa tmiem l-2028, 8.5 sa tmiem l-2029. Id-deċiżiv hu x'tappoġġja l-applikazzjoni tagħkom skont ir-rekwiżiti tas-sistema tal-manifattur. PHP 8.2 tintemm fil-31 ta' Diċembru 2026.

X'jinkiser l-aktar spiss meta wieħed jaqleb minn PHP 7.4 għal PHP 8?

Spiss ikunu kontrolli aktar stretti tat-tipi: funzjonijiet interni f'PHP 8 jitfgħu TypeError jew ValueError minflok ma jagħtu biss twissijiet. Jidhru wkoll tqabbil mibdul bejn numri u ktajjen ta' karattri. Analiżi statika u testijiet jiskopru l-biċċa l-kbira minn qabel.

Il-JIT jagħmel il-websajt tiegħi aktar mgħaġġla?

Il-biċċa l-kbira tal-ħin ftit. Skont il-paġna tar-rilaxx ta' PHP 8.0, il-prestazzjoni ta' applikazzjonijiet tipiċi tal-web hija madwar fil-livell ta' PHP 7.4, filwaqt li kompiti li jeħtieġu ħafna kalkolu jistgħu jibbenefikaw b'mod ċar. Minn PHP 8.4 il-JIT huwa mitfi b'mod predefinit.

Liema novitajiet jgħinu s-sigurtà?

Fost oħrajn l-estensjoni ġdida Random f'PHP 8.2 b'standard sigur b'mod kriptografiku, l-attribut SensitiveParameter kontra passwords fl-stacktraces, enums u proprjetajiet readonly għal dejta aktar inekwivoka kif ukoll l-iżbalji tat-tipi aktar konsistenti minn PHP 8.0.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata