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 →

Standards PSR tal-PHP-FIG

Il-PSRs huma standards komuni li fuqhom qablu ħafna proġetti PHP. Din il-paġna telenka l-PSRs kollha bl-istatus u turi liema huma importanti fil-ħajja ta' kuljum u fejn ikunu relatati mas-sigurtà.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: Il-PSRs (PHP Standards Recommendations) huma standards tal-PHP-FIG, grupp ta' proġetti PHP stabbiliti. Jistabbilixxu regoli u interfaces komuni, pereżempju PSR-4 għall-autoloading, PSR-3 għal-loggers, PSR-7 għal messaġġi HTTP u PSR-11 għal containers. Kull PSR għandu status: aċċettat, abbozz, skadut jew abbandunat. Il-PSRs jagħmlu l-kodiċi aktar sostitwibbli u aktar faċli biex jiġi vverifikat, imma ma jagħlqux vulnerabbiltajiet fl-interpretatur ta' PHP bħal PHP2Shell.

X'inhi l-PHP-FIG u x'inhuma l-PSRs?

PHP-FIG tfisser PHP Framework Interop Group. Il-grupp jiddeskrivi l-għan tiegħu stess bħala li jmexxi PHP 'il quddiem permezz ta' kollaborazzjoni u standards. Wara PSR għalhekk ma jkunx hemm manifattur, imma vot bejn proġetti li jridu jżommu s-softwer tagħhom kompatibbli ma' xulxin.

Għal min jieħu d-deċiżjonijiet il-benefiċċju huwa tanġibbli: jekk applikazzjoni tosserva l-interfaces tal-PSR, il-librerija tar-reġistrazzjoni, pereżempju, tista' tiġi sostitwita mingħajr ma jintmess il-kodiċi kollu. Dan inaqqas id-dipendenza minn pakketti individwali u minn fornituri tas-servizzi.

It-triq ta' PSR: minn Pre-Draft sa Accepted

L-istatut tal-PHP-FIG jiddeskrivi proċess fiss:

  1. Pre-Draft: Jiġi ċċarat jekk hemmx interess biżżejjed. Jiġi mwaqqaf grupp tax-xogħol, u wara vot b'suċċess il-proposta tirċievi numru PSR.
  2. Draft: Il-proposta tiġi elaborata, alternattivi u raġunijiet jidħlu f'dokument meta.
  3. Review: Il-komunità tittestja l-ispeċifikazzjoni b'implimentazzjonijiet ta' prova, għal mill-inqas erba' ġimgħat u sakemm ikun hemm żewġ implimentazzjonijiet indipendenti u vijabbli.
  4. Accepted: Wara vot b'suċċess il-PSR jiġi aċċettat; il-grupp tax-xogħol jitħassar.

Barra minn hekk hemm żewġ stati oħra. Deprecated tfisser: aċċettat, imma mhux rakkomandat aktar, l-aktar għax standard iktar ġdid jissostitwih. Abandoned tfisser: ma jinħadimx aktar fuqu.

Il-PSRs kollha bl-istatus

Stat skont il-ħarsa ġenerali tal-PHP-FIG fil-mument ta' din il-paġna:

Nru Titlu Status
PSR-0 Autoloading Standard skadut
PSR-1 Basic Coding Standard aċċettat
PSR-2 Coding Style Guide skadut
PSR-3 Logger Interface aċċettat
PSR-4 Autoloading Standard aċċettat
PSR-5 PHPDoc Standard abbozz
PSR-6 Caching Interface aċċettat
PSR-7 HTTP Message Interface aċċettat
PSR-8 Huggable Interface abbandunat
PSR-9 Security Advisories abbandunat
PSR-10 Security Reporting Process abbandunat
PSR-11 Container Interface aċċettat
PSR-12 Extended Coding Style Guide aċċettat
PSR-13 Hypermedia Links aċċettat
PSR-14 Event Dispatcher aċċettat
PSR-15 HTTP Handlers aċċettat
PSR-16 Simple Cache aċċettat
PSR-17 HTTP Factories aċċettat
PSR-18 HTTP Client aċċettat
PSR-19 PHPDoc tags abbozz
PSR-20 Clock aċċettat
PSR-21 Internationalization abbozz
PSR-22 Application Tracing abbozz

Il-PSRs l-aktar importanti fil-prattika

  • PSR-4 (Autoloading): jimmappja ismijiet ta' klassijiet fuq mogħdijiet ta' fajls u huwa l-bażi tal-autoloader ta' Composer. Dettalji fil-paġna Namespaces u autoloading.
  • PSR-1 u PER Coding Style: regoli komuni għall-ortografija u l-formattjar. PER Coding Style jestendi u, skont il-PHP-FIG, jissostitwixxi PSR-12 u jipprevedi PSR-1.
  • PSR-3 (Logger): interface uniformi tal-logger fin-namespace Psr\Log b'tmien livelli minn emergency sa debug.
  • PSR-7, PSR-15, PSR-17, PSR-18 (HTTP): interfaces għal talbiet u tweġibiet, middleware, factories u clients HTTP. Ħafna frameworks ta' PHP jibnu fuqhom jew joffru pontijiet.
  • PSR-11 (Container): interface komuni għal containers ta' dependency injection.
  • PSR-6 u PSR-16 (Cache): żewġ interfaces għall-ħażna temporanja, waħda dettaljata u waħda sempliċi.
  • PSR-14 u PSR-20 (Events, arloġġ): interfaces komuni għall-avvenimenti u għall-ħin kurrenti. Arloġġ sostitwibbli jagħmel kodiċi li jiddependi mill-ħin, pereżempju l-iskadenza ta' tokens, faċli biex jiġi ttestjat.

In-numri, bil-mod, ma jgħidu xejn dwar l-importanza. Jingħataw meta tidħol il-fażi tal-abbozz, u għalhekk proposti skaduti u abbandunati jinsabu bejn standards importanti u aċċettati.

<?php
use Psr\Log\LoggerInterface;

final class Bestellimport
{
    public function __construct(private LoggerInterface $log) {}

    public function importieren(string $datei): void
    {
        try {
            // ... ipproċessa l-fajl ...
        } catch (\Throwable $e) {
            $this->log->error('Import von {datei} fehlgeschlagen', [
                'datei'     => basename($datei),
                'exception' => $e,
            ]);
        }
    }
}

X'relazzjoni għandhom il-PSRs mas-sigurtà

Diversi standards jolqtu direttament is-sigurtà. PSR-3 jistabbilixxi li l-exceptions jingħaddew fil-kuntest taħt iċ-ċavetta exception u li placeholders bħal {datei} jinbidlu mill-kuntest. Il-valuri m'għandhomx jiġu megħjuna minn qabel, għax il-logger ma jafx fejn aktar tard se jintwerew. Min juri l-logs f'interface tal-web irid jagħmel dan l-escaping hemmhekk. Aktar dwar dan fl-artikolu Reġistrazzjoni sigura.

PSR-7 jiddeskrivi l-messaġġi HTTP bħala oġġetti li ma jinbidlux u b'UploadedFileInterface::moveTo() joffri mod uniformi biex fajls imtellgħin jinħażnu. L-ispeċifikazzjoni teżiġi li l-fajl oriġinali jitneħħa wara. Il-verifika tat-tip tal-fajl u tad-destinazzjoni tibqa' kompitu tal-applikazzjoni.

Jixraq li jiġi nnutat li PSR-9 (Security Advisories) u PSR-10 (Security Reporting Process) ġew abbandunati. Standard komuni għal rapporti tas-sigurtà għalhekk ma jeżistix; kull proġett jirregola dan waħdu. Kif il-proġett PHP innifsu jittratta l-vulnerabbiltajiet tiddeskrivih il-paġna Kif il-proġett PHP jittratta l-vulnerabbiltajiet tas-sigurtà.

Kontra PHP2Shell l-istandards ma jgħinux: il-vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 jinsabu fl-interpretatur. Obbligatorju huwa l-aġġornament għal PHP 8.5.12, 8.4.27, 8.3.36 jew 8.2.35 u r-restart tal-proċessi kollha ta' PHP.

Kif jgħin PHP SOS konkretament?

  • Niċċekkjaw kif l-applikazzjoni tagħkom tirreġistra u niżguraw li l-exceptions jispiċċaw fil-log, imma mhux data ta' aċċess jew identifikaturi tas-sessjoni.
  • Nevalwaw kif huma implimentati l-ipproċessar tal-uploads u tal-HTTP, anki jekk jgħaddu minn libreriji PSR-7.
  • Neżaminaw żviluppi proprji bħala parti minn awditu tas-sigurtà u test ta' penetrazzjoni.
  • Napplikaw aġġornamenti ta' PHP, nerġgħu nibdew il-workers kollha u niddokumentaw l-istat.

Mistoqsijiet frekwenti

X'tfisser PSR?

PSR tfisser PHP Standards Recommendation. Ir-rakkomandazzjonijiet jiġu żviluppati u miftiehma mill-PHP-FIG, il-PHP Framework Interop Group. Huma volontarji, imma ħafna frameworks u libreriji japplikawhom.

PSR-12 għadu japplika?

PSR-12 għadu miżmum mill-PHP-FIG bħala aċċettat. Madankollu, il-PHP-FIG ippubblikat suċċessur, PER Coding Style, li skont dak li tgħid hi stess jestendi u jissostitwixxi PSR-12. Bħalissa hemmhekk il-verżjoni hi 3.1.

Hemm PSR għal rapporti tas-sigurtà?

Kien hemm żewġ proposti, PSR-9 għal Security Advisories u PSR-10 għall-proċess tar-rappurtar ta' vulnerabbiltajiet. It-tnejn huma miżmuma mill-PHP-FIG bħala abbandunati. Il-proġetti għalhekk jirregolaw huma stess il-proċess tar-rappurtar.

Il-proġett tiegħi jrid josserva l-PSRs?

Le, m'hemm l-ebda obbligu. PSR-4 għall-autoloading u l-interfaces bħal PSR-3 jew PSR-7, madankollu, jiffaċilitaw b'mod sinifikanti l-użu ta' pakketti barranin u l-bidla ta' fornituri tas-servizzi.

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