Trumpai: didelė dalis paplitusių turinio valdymo sistemų (CMS) ir parduotuvių sistemų parašyta PHP kalba, tarp jų WordPress su WooCommerce, TYPO3, Joomla, Drupal, Contao, Shopware, Magento arba Adobe Commerce ir PrestaShop. Be to, yra vidinės programos, tokios kaip Nextcloud, Moodle, MediaWiki ir Matomo. Kas eksploatuoja vieną iš šių sistemų, tą veikia PHP interpretatoriaus spragos, tokios kaip PHP2Shell, nesvarbu, kaip naujas pats CMS.
Kodėl tiek daug svetainių veikia su PHP
PHP nuo 1990-ųjų pritaikytas žiniatinklio serveriams ir prieinamas praktiškai pas kiekvieną hostingo teikėją. Todėl CMS PHP pagrindu galima eksploatuoti be savos serverių infrastruktūros, o tai buvo ir tebėra patrauklu ypač mažoms ir vidutinėms įmonėms, asociacijoms ir institucijoms.
Eksploatuotojams tai reiškia: svetainė nėra tik „WordPress“ ar „Shopware“, o kelių sluoksnių krūva. Apačioje veikia operacinė sistema, virš jos žiniatinklio serveris, tada PHP interpretatorius ir pačiame viršuje CMS su plėtiniais. Kiekvienam sluoksniui reikia savų atnaujinimų. PHP spraga paliečia visas ant jo pastatytas sistemas.
Be to, yra plėtiniai: papildiniai, temos, moduliai ir parduotuvių sąsajos taip pat yra PHP kodas, dažnai iš mažų tiekėjų. Jie veikia su tomis pačiomis teisėmis kaip CMS ir vykdomi tos pačios PHP vykdymo aplinkos. Todėl CMS su daug plėtinių turi didesnį atakos paviršių nei lieknas diegimas, net jei branduolys aktualus.
Skaičių apie atskirų sistemų paplitimą čia nepateikiame. Tam nėra šaltinio, kurį laikytume patikimu ir palyginamu.
Paplitusios CMS ir parduotuvių sistemos PHP pagrindu
Lentelėje nurodytos žinomos sistemos ir tai, ką patys gamintojai sako apie savo techninį pagrindą. Versijų reikalavimų sąmoningai nenurodome, nes jie keičiasi su kiekvienu leidimu.
| Sistema | Rūšis | Pastaba apie techninį pagrindą |
|---|---|---|
| WordPress, WooCommerce | CMS, parduotuvės plėtinys | PHP programa, pasak reikalavimų, MySQL arba MariaDB |
| TYPO3 | CMS | pasak dok. reikia žiniatinklio serverio, PHP ir SQL duomenų bazės |
| Joomla | CMS | PHP su MySQL, MariaDB arba PostgreSQL |
| Drupal | CMS | PHP; branduolio plėtiniai core/composer.json |
| Contao | CMS | pasak gamintojo, Symfony Full-Stack karkaso pagrindu |
| Craft CMS | CMS | gamintojas tarp naudojamų įrankių nurodo Yii |
| Shopware 6 | parduotuvė | kūrėjų dok. papildinius traktuoja kaip Symfony paketus (bundles) |
| Magento Open Source, Adobe Commerce | parduotuvė | PHP ir Composer sistemos reikalavimuose |
| PrestaShop | parduotuvė | PHP su sava suderinamumo lentele |
| Nextcloud | failų saugykla | Apache su mod_php ar PHP-FPM, Nginx su PHP-FPM |
| Moodle | mokymosi platforma | pasak dok. sukurta PHP kalba |
| MediaWiki, Matomo | wiki, statistika | PHP pagal diegimo reikalavimus |
Daugelis šių sistemų viduje naudoja PHP karkasų dalis ir bibliotekas įkelia per Composer. Daugumai turime atskirus puslapius su apsaugos patarimais, pavyzdžiui, WordPress, Shopware 6 ir TYPO3.
Kaip sužinoti, ar mano svetainė veikia su PHP?
Daugelis įmonių tiksliai nežino, kokios sistemos jose veikia, ypač jei svetainę sukūrė agentūra. Šie žingsniai suteikia aiškumo:
- Sudaryti inventorių: išvardyti visus domenus, subdomenus ir vidines žiniatinklio sąsajas, taip pat bandymų sistemas ir senus kampanijų puslapius.
- Paklausti hostingo teikėjo ar agentūros: kokia sistema, kokia PHP versija, koks veikimo režimas (PHP-FPM, mod_php, LiteSpeed)? Paprašykite rašytinio atsakymo.
- Pažiūrėti hostingo skydelį: Plesk, cPanel ir panašiose sąsajose nurodyta kiekvienos svetainės PHP versija. Atminkite, kad distribucijos backport rodomo numerio nekeičia.
- Patikrinti serveryje: administratoriai iš procesų ir žiniatinklio serverio konfigūracijos mato, kuri PHP vykdymo aplinka iš tikrųjų teikia turinį.
- Nepamiršti įrenginių: NAS sistemos, maršrutizatoriai ir įrenginiai (appliances) dažnai turi žiniatinklio sąsają, kuri taip pat gali veikti su PHP.
# Serveryje: kurie PHP procesai veikia?
ps -eo user,cmd | grep -E 'php-fpm|lsphp|php-cgi|frankenphp' | grep -v grep
Rimtai žiūrėti į sistemos reikalavimus
Kiekvienas gamintojas skelbia, su kuriomis PHP versijomis jo programinė įranga išbandyta. Šie duomenys yra bet kokio atnaujinimo planavimo pagrindas: PHP atnaujinimas į versiją, kurios CMS dar nepalaiko, gali sustabdyti svetainę. CMS, veikiantis tik su PHP versija be saugumo atnaujinimų, yra nuolatinė rizika.
Todėl pagal gamintojo sistemos reikalavimus savo tiksliai versijai patikrinkite, kurios PHP versijos tinka, ir palyginkite tai su ištaisytomis PHP versijomis. Sistemoms, veikiančioms tik su PHP 8.1 ar senesne, PHP projektas oficialių atnaujinimų nebeteikia.
Ką PHP2Shell reiškia CMS ir parduotuvių eksploatuotojams
PHP2Shell sudaro spragos CVE-2026-109618 ir CVE-2026-109619 PHP interpretatoriuje, abi su CVSS 9,2. Jos leidžia vykdyti kenkėjišką kodą be prisijungimo. Ištaisytos PHP 8.5.12, 8.4.27, 8.3.36 ir 8.2.35. CMS atnaujinimas šių spragų neuždaro; kodėl, paaiškina mūsų straipsnis Kodėl WordPress atnaujinimas nepadeda nuo PHP2Shell.
Parduotuvėms tai ypač sunku, nes ten yra klientų duomenys, užsakymai ir prieigos duomenys prie mokėjimo ir siuntimo paslaugų. Be to, pataisa nepašalina anksčiau įterptos kenkėjiškos programinės įrangos ir neįrodo, kad nieko neįvyko.
Kaip PHP SOS padeda konkrečiai?
- Sudarome jūsų PHP pagrindu veikiančių svetainių ir vidinių programų inventorių su sistema, PHP versija ir veikimo režimu.
- Gamintojų reikalavimus suderiname su ištaisytomis PHP versijomis ir planuojame atnaujinimą kiekvienai sistemai.
- Įdiegiame PHP atnaujinimus, iš naujo paleidžiame visus procesus ir po to patikriname, ar CMS ir parduotuvė veikia teisingai.
- Įtarus incidentą, sistemą tiriame PHP2Shell skubios pagalbos rėmuose.
Dažni klausimai
Ar WordPress veikia su PHP?
Taip. WordPress yra PHP programa ir, pasak oficialių reikalavimų, jai reikia PHP bei MySQL ar MariaDB duomenų bazės. Todėl PHP interpretatoriaus spragos liečia kiekvieną WordPress diegimą, nepriklausomai nuo paties WordPress būsenos.
Ar CMS atnaujinimas padeda nuo PHP2Shell?
Ne. Spraga yra PHP, o ne CMS. Pasak drweb.de, WordPress.org todėl neplanuoja ir savo atnaujinimo. Uždaroma tik ištaisyta PHP versija ir visų PHP procesų paleidimas iš naujo.
Kaip sužinoti, kokios PHP versijos reikia mano parduotuvei?
Iš gamintojo sistemos reikalavimų jūsų konkrečiai versijai. Šie duomenys keičiasi su kiekvienu didesniu leidimu, todėl juos reikėtų perskaityti tiesiogiai pas gamintoją, o ne imti iš senesnių instrukcijų.
Ar paveiktos ir vidinės programos?
Taip, jei jos veikia su PHP. Failų saugyklos, tokios kaip Nextcloud, mokymosi platformos, tokios kaip Moodle, vidiniai wiki su MediaWiki ar Matomo statistikai yra PHP programos. Inventorizuojant jos dažnai pamirštamos.
Ar svetainė be .php adrese nėra PHP?
Nebūtinai. Šiuolaikinės sistemos nukreipia visus adresus per centrinį index.php, todėl URL .php niekada nepasirodo. Tikrai žinoti galima pažiūrėjus į serverį arba gavus atsakymą iš hostingo teikėjo ar agentūros.