PHP-tietoa: ohjelmointikieli selitettynä
Mitä PHP on, miten se muodostaa verkkosivun ja miksi ajotapa, asetukset ja versio ratkaisevat tietoturvan. Ymmärrettävästi päättäjille ja syvällisesti ylläpitäjille ja kehittäjille.
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.
Lue lisää →02PHP:n historia: vuodesta 1994 tähän päivään
Yksityisestä työkalusta ansioluettelosivulle monien CMS- ja verkkokauppajärjestelmien perustaksi: PHP:n historian tärkeimmät vaiheet tarkistettuine vuosilukuineen.
Lue lisää →03Miten PHP tuottaa verkkosivun: pyynnön tie
Mitä klikkauksen ja valmiin sivun välillä tapahtuu: verkkopalvelin, SAPI, kääntäjä, OPcache ja Zend VM seitsemässä vaiheessa, ja miksi PHP2Shell iskee juuri tähän kulkuun.
Lue lisää →04Zend Engine: PHP:n sydän
Zend Engine kääntää PHP-koodin opcode-käskyiksi ja suorittaa ne. Kun sen osat tuntee, ymmärtää, miksi ytimen haavoittuvuudet kuten PHP2Shell korjaa vain PHP-päivitys.
Lue lisää →05OPcache selitettynä: PHP:n tavukoodivälimuisti
OPcache pitää käännetyn PHP-koodin jaetussa muistissa. Se säästää laskenta-aikaa, mutta vaatii huolellisuutta käyttöönotoissa, uudelleenkäynnistyksissä ja usean asiakkaan palvelimilla.
Lue lisää →06SAPI selitettynä: miten PHP keskustelee verkkopalvelimen kanssa
SAPI on PHP:n ja verkkopalvelimen välinen rajapinta. Se määrää, miten pyynnöt saapuvat, mikä php.ini on voimassa ja mitä päivityksen jälkeen on käynnistettävä uudelleen.
Lue lisää →07PHP-FPM selitettynä: prosessinhallinta, poolit ja workerit
PHP-FPM ajaa PHP:tä omana palvelunaan pooleineen ja workereineen. Näin prosessimalli toimii, mitkä direktiivit ovat tärkeitä ja miksi workerit on käynnistettävä uudelleen päivitysten jälkeen.
Lue lisää →08mod_php selitettynä: PHP Apache-prosessissa
mod_php:ssä PHP on jokaisessa Apache-prosessissa. Se on yksinkertaista mutta jäykkää, ja PHP2Shellin jälkeen riskialtein ajotapa. Näin se toimii ja näin sen tunnistaa.
Lue lisää →09CGI ja FastCGI: perusteet
CGI käynnistää prosessin jokaiselle pyynnölle, FastCGI pitää prosessit hengissä. Mitä se tarkoittaa PHP:lle, php-cgi:lle ja PHP-FPM:lle ja mitkä asetukset vaikuttavat tietoturvaan.
Lue lisää →10PHP komentorivillä (CLI)
PHP CLI suorittaa komentosarjoja ilman verkkopalvelinta, esimerkiksi cron-tehtäviin ja ylläpitoon. Se käyttäytyy eri tavalla kuin verkkoversio eikä usein näytä verkkosivustonne käyttämää tilaa.
Lue lisää →11php.ini selitettynä: rakenne, tasot ja etusija
Mistä PHP löytää asetuksensa, missä järjestyksessä ne tulevat voimaan ja kuka saa ohittaa ne. Perusta kaikelle koventamiselle ja PHP2Shellin väliaikaistoimille.
Lue lisää →12PHP-versiot ja julkaisusykli
Joka vuosi marraskuussa ilmestyy uusi PHP-versio, jota huolletaan neljä vuotta. Mitkä haarat päättyvät ja milloin, ja mitä se tarkoittaa suunnittelullenne PHP2Shellin jälkeen.
Lue lisää →13PHP 8.0–8.5: tärkeimmät uudet ominaisuudet
PHP 8.0:n matchista ja JIT:stä PHP 8.5:n pipe-operaattoriin ja URI-laajennukseen: jokaisen version uudet ominaisuudet, päivityksen sudenkuopat ja se, mitä ne tuovat tietoturvalle.
Lue lisää →14PHP-laajennusten (extensions) ymmärtäminen
Laajennukset tuovat PHP:hen tietokanta-ajurit, salauksen tai välimuistit. Näin lajit eroavat, näin ne ladataan ja tarkistetaan ja mitä ne tarkoittavat päivityksille ja koventamiselle.
Lue lisää →15Composer: PHP:n pakettienhallinta
Composer lataa ja hallinnoi kirjastoja, joihin modernit PHP-projektit perustuvat. Kun ymmärtää composer.jsonin, composer.lockin ja automaattisen lataajan, toimitus on toistettavampi ja turvallisempi.
Lue lisää →16PHP-kehykset yleiskatsauksena
Kehykset antavat PHP-sovelluksille rakenteen, reitityksen ja tietoturvan rakennuspalikoita. Tämä katsaus esittelee tunnetut kehykset, valintaperusteet ja suojan rajat.
Lue lisää →17Mitkä CMS- ja verkkokauppajärjestelmät toimivat PHP:llä
Monet tunnetut CMS-, verkkokauppa- ja yrityssovellukset toimivat PHP:llä. Näin arvioitte, mitkä verkkosivustoistanne voivat olla PHP-aukkojen, kuten PHP2Shellin, vaikutuspiirissä.
Lue lisää →18PHP ja tietokannat: PDO ja mysqli
PHP keskustelee tietokantojen kanssa PDO:n tai mysqlin kautta. Tässä erot, turvalliset kyselyt Prepared Statementsilla ja mitä tietokantatunnuksille tehdään palvelinpoikkeaman jälkeen.
Lue lisää →19Istunnot ja evästeet PHP:ssä
Istunnot tekevät tilattomasta HTTP:stä kirjautumisen, joka pysyy usean sivun yli. Tässä kerrotaan, miten PHP ratkaisee sen sisäisesti, mitkä oletusarvot pätevät ja mitä session.upload_progress liittyy PHP2Shelliin.
Lue lisää →20Superglobaalit: $_GET, $_POST, $_FILES ja muut
Superglobaalit ovat taulukoita, joiden kautta PHP-koodi saa pyyntötiedot. Kun tietää, miten PHP täyttää ne ja mitkä rajat pätevät, kirjoittaa turvallisempaa koodia ja ymmärtää PHP2Shelliä paremmin.
Lue lisää →21Miten PHP käsittelee tiedostolataukset
Latauspainikkeen napsautuksen ja oman koodinne välillä on PHP:ssä kokonainen käsittelyketju. Tällä sivulla selitetään multipart/form-data, tilapäistiedostot, $_FILES, rajat ja yhteys PHP2Shelliin.
Lue lisää →22PHP:n tyyppijärjestelmä
PHP on dynaamisesti tyypitetty, mutta sen tyyppijärjestelmä on tiukentunut versiosta PHP 7 lähtien. Täältä näette tyypit, tärkeimmät versiot ja sen, miksi tiukat vertailut ehkäisevät tietoturvavirheitä.
Lue lisää →23Virheet ja poikkeukset PHP:ssä
PHP tuntee perinteiset virheilmoitukset ja poikkeukset (exception). Tällä sivulla selitetään Throwable-hierarkia, siisti virheenkäsittely, tuotannon turvalliset asetukset ja PHP2Shell-toimenpide fatal_error_backtraces.
Lue lisää →24Olio-ohjelmointi PHP:ssä
Modernit PHP-sovellukset ovat lähes aina olio-orientoituneita. Tällä sivulla selitetään rakennuspalikat, uudistukset versioista PHP 8.0–8.4 ja se, miksi taikametodeilla on merkitystä tietoturvalle.
Lue lisää →25Nimiavaruudet ja automaattinen lataus (PSR-4)
Nimiavaruudet jäsentävät PHP-koodia, ja automaattinen lataus lataa luokat täsmälleen silloin, kun niitä tarvitaan. Täältä näette, miten PSR-4 kuvaa luokkien nimet tiedostoiksi ja miksi lataaja on tarkastettava poikkeaman jälkeen.
Lue lisää →26PHP-FIG:n PSR-standardit
PSR:t ovat yhteisiä standardeja, joista monet PHP-hankkeet ovat sopineet. Tällä sivulla luetellaan kaikki PSR:t tiloineen ja näytetään, mitkä niistä ovat arjessa tärkeitä ja missä ne sivuavat tietoturvaa.
Lue lisää →27Muistinhallinta PHP:ssä: viitelaskenta ja roskienkeruu
PHP hallitsee muistia viitelaskennalla ja kehiä varten roskienkerääjällä. Sivulla selitetään mekaniikka, tärkeimmät mittausfunktiot ja se, miksi kummallakin PHP2Shell-aukolla on tekemistä muistitilojen kanssa.
Lue lisää →28memory_limit ja Out-of-Memory: mitä sisällä tapahtuu
Mitä tapahtuu, kun PHP-komentosarja osuu rajaan memory_limit? Mekaniikka, lokakuun korjausten tuoma uusi kova muistiraja ja yhteys haavoittuvuuteen CVE-2026-109618.
Lue lisää →29Pyynnön elinkaari: käynnistys, suoritus, sammutus
Miten PHP käynnistää prosesseja, käsittelee pyyntöjä ja siivoaa niiden välillä. Vaiheet MINITistä MSHUTDOWNiin ja yhteys haavoittuvuuteen CVE-2026-109619.
Lue lisää →30JIT ja suorituskyky PHP 8:ssa
JIT-kääntäjä muuntaa PHP:tä konekoodiksi versiosta 8.0 lähtien. Tyypillisille sivustoille hyöty on vähäinen; OPcache, ajantasaiset versiot ja siisti konfiguraatio antavat enemmän.
Lue lisää →31PHP-koodin testaus: PHPUnit ja Pest
PHPUnit on PHP:n vakiotestityökalu, ja Pest rakentuu sen päälle. Kun testit ovat olemassa, tietoturvapäivitykset ja versiovaihdokset voi tehdä nopeammin ja pienemmällä riskillä.
Lue lisää →32Staattinen analyysi: PHPStan ja Psalm
PHPStan ja Psalm löytävät PHP-koodin virheitä suorittamatta sitä. Psalm seuraa lisäksi turvattomia tietovirtoja. PHP-tulkin omia aukkoja kumpikaan ei löydä.
Lue lisää →33PHP:n sisäänrakennetut tietoturvafunktiot
PHP tarjoaa turvallisia rakennuspalikoita salasanoille, satunnaisarvoille, maskaukselle, kryptografialle ja istunnoille. Niitä johdonmukaisesti käyttämällä vältetään yleisimmät sovellusvirheet.
Lue lisää →34PHP:n paikallinen kehitys: Docker, DDEV ja muut
PHP:n paikalliseen kehitykseen on sisäänrakennettu verkkopalvelin, viralliset Docker-kuvat ja työkaluja kuten DDEV. Tärkeää on, että paikallisesti ajetaan samaa PHP-versiota kuin tuotannossa.
Lue lisää →35PHP verrattuna Node.js:ään, Pythoniin ja Javaan
PHP, Node.js, Python ja Java eroavat toisistaan ennen kaikkea suoritusmallissa ja käytössä. Mikään kieli ei ole sinänsä turvallisempi; ratkaisevia ovat ylläpito ja korjausprosessi.
Lue lisää →36Miten PHP-hanke käsittelee tietoturva-aukot
PHP:n tietoturva-aukot ilmoitetaan luottamuksellisesti, luokitellaan, korjataan julkaisussa ja julkaistaan GitHub Security Advisorynä. PHP2Shell näyttää kulun hätätilanteessa.
Lue lisää →37PHP:n kääntäminen lähdekoodista
PHP:n voi rakentaa itse komennoilla configure ja make. Se antaa hallinnan laajennuksiin ja valitsimiin, mutta myös täyden vastuun jokaisesta tietoturvapäivityksestä.
Lue lisää →38PHP:n ajaminen konteissa
PHP kontissa tarvitsee sopivan kuvavariantin, tuotantokonfiguraation, järkevät muistirajat ja prosessin, joka rakentaa kuvat uudelleen jokaisen tietoturvajulkaisun yhteydessä.
Lue lisää →39PHP:n tulevaisuus
PHP:tä kehitetään kiinteiden sääntöjen mukaan: neljä vuotta tukea versiota kohti, PHP 8.6 on suunniteltu 19.11.2026, PHP 9.0:lle on hyväksyttyjä RFC:itä mutta ei aikataulua.
Lue lisää →40PHP-perustiedot ylläpitäjille
Mitä ylläpitäjän on tiedettävä PHP:stä: mitkä binäärit ovat käynnissä, miten konfiguraatio vaikuttaa, miten FPM-poolit toimivat ja mitkä komennot auttavat PHP2Shellin kaltaisissa päivityksissä.
Lue lisää →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.