Ajankohtainen tilanne: PHP2Shell. Kaksi kriittistä PHP-haavoittuvuutta (CVSS 9.2) sallii haittakoodin suorittamisen ilman kirjautumista. Korjaukset 21.10.2026 alkaen.Mitä nyt on tehtävä →

Mikä on PHP? Ohjelmointikieli selitettynä

PHP on komentosarjakieli, joka toimii palvelimella ja tuottaa siellä HTML:ää. Monet CMS- ja verkkokauppajärjestelmät perustuvat siihen, joten PHP:n haavoittuvuus koskee hyvin monia verkkosivustoja.

Tilanne Lukuaika 4 minPHP-tietoa

Lyhyesti: PHP on avoimen lähdekoodin komentosarjakieli, jota käytetään pääasiassa verkkosovelluksissa. Koodi suoritetaan palvelimella, missä se tuottaa HTML:ää ja lähettää selaimelle vain tuloksen. Koska monet CMS- ja verkkokauppajärjestelmät sekä sisäiset työkalut perustuvat PHP:hen, palvelimen PHP-versio on oma tietoturvatekijänsä, riippumaton CMS-päivityksestä.

Mikä on PHP? Määritelmä yksinkertaisin sanoin

PHP-käsikirja kuvaa PHP:n laajasti käytetyksi, avoimen lähdekoodin yleiskäyttöiseksi komentosarjakieleksi, joka sopii erityisesti verkkokehitykseen ja jonka voi upottaa HTML:ään. Nimi on rekursiivinen lyhenne eli lyhenne, joka sisältää itsensä: ”PHP: Hypertext Preprocessor”.

Ratkaiseva ero selaimessa toimivaan JavaScriptiin: PHP-koodi suoritetaan palvelimella. Kävijä saa vain valmiin tuloksen eikä näe lähdekoodia. Siksi PHP sopii kaikkeen, minkä on pysyttävä luottamuksellisena, esimerkiksi tietokantayhteyksiin, kirjautumisiin tai hintalaskentaan.

Käsikirjan mukaan PHP:llä on kaksi pääkäyttöaluetta: palvelinpuolen komentosarjat verkkosivustoille ja komentorivillä ajettavat komentosarjat, esimerkiksi säännölliset tehtävät Cronin kautta. Molemmat löytyvät lähes jokaisesta yrityksestä, jolla on oma verkkosivusto, verkkokauppa tai asiakasportaali.

Missä PHP on mukana yrityksessänne?

PHP näkyy harvoin suoraan. Se on mukana ohjelmistoissa, jotka tunnette toisella nimellä. Tyypillisiä esimerkkejä:

  • Sisällönhallintajärjestelmät kuten WordPress, TYPO3, Joomla, Drupal tai Contao
  • Verkkokauppajärjestelmät kuten Shopware, WooCommerce, Magento tai PrestaShop
  • Sisäiset palvelut kuten Nextcloud, Moodle, MediaWiki tai Matomo
  • Omat kehitystyöt, jotka perustuvat kehyksiin kuten Laravel tai Symfony
  • Laitteiden ja hosting-paneelien verkkokäyttöliittymät

Jokainen näistä sovelluksista tarvitsee asennetun PHP-ajoympäristön eli ohjelman, joka suorittaa PHP-koodin. Tämä ajoympäristö on oma ohjelmistonsa omine päivityksineen. WordPressin tai Shopwaren päivitys ei päivitä PHP:tä. Siksi sen, kuka käyttää mitäkin järjestelmää, kuuluu olla luettelossa, jota kuvaa artikkeli Kaikkien verkkosivustojen ja palvelimien luettelo.

Miltä PHP-koodi näyttää?

PHP-koodi on merkkien <?php ja ?> välissä. Kaikki niiden ulkopuolella tulostetaan muuttumattomana HTML:nä. Pieni, harmiton esimerkki:

<?php
$stunde = (int) date('G');
$gruss  = $stunde < 12 ? 'Guten Morgen' : 'Guten Tag';
?>
<!DOCTYPE html>
<html lang="de">
  <body>
    <p><?= htmlspecialchars($gruss) ?>, heute ist der <?= date('d.m.Y') ?>.</p>
  </body>
</html>

Palvelin suorittaa PHP-osan ja lähettää selaimelle vain valmista HTML:ää, esimerkiksi ”Guten Tag, heute ist der 25.10.2026”. Funktio htmlspecialchars() muuntaa erikoismerkit ja suojaa näin lisätyltä HTML:ltä. Tällaiset sisäänrakennetut suojafunktiot ovat yksi syy siihen, miksi huolellisesti kirjoitettu PHP-koodi voi olla turvallista.

Mistä osista PHP-ympäristö koostuu?

PHP-verkkosivusto ei koostu pelkästä sovelluksen koodista. Useat kerrokset toimivat yhdessä, ja jokainen tarvitsee oman huoltonsa:

Osa Tehtävä Kuka yleensä päivittää?
Verkkopalvelin (Apache, Nginx, LiteSpeed) ottaa vastaan pyynnöt verkosta hosting-yritys tai palvelimen ylläpitäjä
PHP-ajoympäristö (tulkki) suorittaa PHP-koodin hosting-yritys, palvelimen ylläpitäjä, pakettilähde
Laajennukset tietokanta-ajurit, kuvankäsittely, salaus PHP-ajoympäristön mukana
Konfiguraatio (php.ini) rajat, virheiden tulostus, istunnot palvelimen ylläpitäjä
Sovellus (CMS, verkkokauppa) sisällöt ja liiketoimintalogiikka verkkotoimisto tai oma tiimi
Lisäosat ja kirjastot lisätoiminnot verkkotoimisto tai oma tiimi

Verkkopalvelimen ja PHP:n välistä yhteyttä kutsutaan SAPI:ksi (Server Application Programming Interface). Se, toimiiko PHP Apache-moduulina, PHP-FPM:n kautta vai CGI:nä, vaikuttaa käyttöön ja tietoturvaan. Lisää tietoa löytyy sivulta SAPI selitettynä ja artikkelista Miten PHP tuottaa verkkosivun.

Miksi PHP-versio on tärkeä tietoturvalle

Jokaista PHP-versiota huolletaan vain rajoitetun ajan. Php.netin mukaan jokaisella versiohaaralla on kaksi vuotta aktiivista tukea ja sen jälkeen kaksi vuotta pelkkiä tietoturvakorjauksia. Sen jälkeen haara on elinkaarensa lopussa eikä saa enää virallisia päivityksiä. Yksityiskohdat ovat sivulla PHP-versiot ja julkaisusykli.

PHP2Shell osoittaa, kuinka tärkeää tämä on. Lokakuussa 2026 julkistettiin kaksi kriittistä haavoittuvuutta itse PHP:ssä, CVE-2026-109618 ja CVE-2026-109619, kummankin CVSS v4.0 -pistemäärä on 9.2. Ne mahdollistavat haittakoodin suorittamisen etänä ilman kirjautumista. Ne on korjattu versioissa PHP 8.5.12, 8.4.27, 8.3.36 ja 8.2.35. PHP 8.1:lle ja vanhemmille ei ole enää virallisia päivityksiä.

Päättäjille tästä seuraa kolme asiaa:

  1. CMS-päivitys ei sulje PHP:n haavoittuvuutta. Molemmat on päivitettävä erikseen.
  2. PHP-päivityksen jälkeen kaikki PHP-prosessit on käynnistettävä uudelleen, muuten vanha koodi jää käyntiin muistissa.
  3. Korjaus ei todista, ettei aiemmin ole tapahtunut mitään. Suojaamattomilla palvelimilla kuuluu mukaan jälkien tarkistus.
Tärkeää

Selvittäkää kirjallisesti, kuka teillä vastaa PHP-ajoympäristöstä: hosting-yritys, verkkotoimisto vai oma IT. PHP2Shellin yhteydessä kävi ilmi, että tämä kysymys oli monessa yrityksessä auki.

Mikä haavoittuvuus tarkalleen on ja ketä se koskee, selitetään sivulla Mikä on PHP2Shell?.

Miten PHP SOS auttaa konkreettisesti?

  • Kartoitus: Selvitämme, mitkä järjestelmänne käyttävät PHP:tä, missä versiossa ja millä ajotavalla.
  • Vastuiden selvitys: Näytämme, mitä osia hosting-yrityksenne ylläpitää ja mitkä ovat teidän tai verkkotoimistonne vastuulla.
  • Päivitys: PHP-päivityspalvelun kautta asennamme päivitykset, käynnistämme kaikki prosessit uudelleen ja dokumentoimme tilanteen.
  • Jälkitarkistus: Jos palvelin oli tavoitettavissa suojaamattomana, tarkistamme murron jäljet.

Usein kysytyt kysymykset

Onko PHP ohjelmointikieli vai pelkkä komentosarjakieli?

Molemmat pitävät paikkansa. PHP on täysipainoinen, yleiskäyttöinen ohjelmointikieli, jossa on funktioita, luokkia ja tyyppejä. Komentosarjakieleksi sitä kutsutaan, koska lähdekoodia ei käännetä etukäteen suoritettavaksi tiedostoksi, vaan PHP-tulkki käsittelee sen ajon aikana.

Näkevätkö verkkosivustoni kävijät PHP-koodin?

Eivät. PHP toimii palvelimella, ja selain saa vain tuloksen, yleensä HTML:ää. Poikkeuksia syntyy virheellisestä konfiguraatiosta, esimerkiksi jos verkkopalvelin toimittaa PHP-tiedostot tekstinä tai jos varmuuskopiot, kuten index.php.bak, ovat julkisesti saatavilla.

Mistä tiedän, toimiiko verkkosivustoni PHP:llä?

Useimmat yleiset CMS- ja verkkokauppajärjestelmät, kuten WordPress, TYPO3, Shopware, Joomla tai Nextcloud, on kirjoitettu PHP:llä. Varmuuden saa kysymällä hosting-yritykseltä tai verkkotoimistolta tai katsomalla palvelimen konfiguraatiota.

Onko toimitusjohtajan ymmärrettävä PHP?

Ei yksityiskohtia myöten. Tärkeää on tietää, että PHP on oma ohjelmistonsa omine päivityksineen, erillään CMS:stä. Kirjallisesti pitäisi olla selvää, kuka vastaa palvelimienne PHP-versiosta.

Lähteet

Pikayhteys

Jokainen tunti on tärkeä. Kirjoittakaa meille nyt.

Kuvatkaa lyhyesti järjestelmä, PHP-versio ja havainnot. Otamme yhteyttä, selvitämme tilanteen ja työskentelemme etänä, kunnes tapaus on käsitelty loppuun ja dokumentoitu.

Pikaapu