# Contaon tietoturva PHP2Shellin jälkeen: verkkosivustojen oikea suojaus

> Contaon tietoturva PHP2Shellin jälkeen: tarkista web- ja Contao Manager -PHP, .env ja mallipohjat sekä suojaa hallinnan ja Managerin pääsy.

Lähde: https://phpsos.de/fi/plattformen/contao/  
Tilanne: 25.10.2026  
Palveluntarjoaja: PHP SOS, PHP-hätäapu ja palvelimen tietoturva. Pikaapu WhatsAppilla: https://wa.me/491736494914?text=Hei%20PHP%20SOS%2C%20tarvitsemme%20apua%20PHP-palvelimemme%20kanssa.%20Yritys%3A%20%E2%80%A6%20Verkkosivusto%3A%20%E2%80%A6

**Lyhyesti:** Contaon tietoturva riippuu PHP2Shellin osalta palvelimen PHP:stä, ei Contaosta. Huolehtikaa, että sekä web-PHP että Contao Managerin komentorivi-PHP on korjattu. Sen jälkeen tarkistakaa `.env`, omat mallipohjat, kansio `files` sekä hallinnan ja Managerin tunnukset.

## Contao ja PHP2Shell: mistä on kyse

Contao on saksankielisellä alueella yleinen sisällönhallintajärjestelmä, joka on perustunut Symfony-kehykseen versiosta 4 lähtien. PHP-tiimin mukaan PHP-haavoittuvuudet CVE-2026-109618 ja CVE-2026-109619 sallivat haittakoodin suorittamisen etänä ilman kirjautumista. Ne koskevat itse PHP:tä, siis myös jokaista Contao-asennusta korjaamattomalla palvelimella.

Monet Contao-sivustot kuuluvat keskisuurille yrityksille, yhdistyksille ja kunnille, ja niitä ylläpitävät toimistot. Selvittäkää siksi ensin, kuka vastaa PHP:stä: hosting-palveluntarjoaja, toimisto vai oma IT.

Yleinen harhakäsitys koskee huoltotilaa. Contao voi sulkea sivuston kävijöiltä, mutta tämän sulun tarjoaa itse PHP. Jokainen pyyntö saavuttaa siis edelleen PHP-tulkin. Huoltotila ei siksi suojaa PHP2Shellilta. Kun BSI (Saksan liittovaltion tietoturvavirasto) suosittelee ottamaan verkkopalvelimet pois verkosta päivitykseen asti, tarkoitetaan estoa palvelin- tai hosting-tasolla, ei CMS:n asetusta.

## Contaon tietoturva alkaa kahdesta PHP-versiosta

Contao käyttää PHP:tä kahta reittiä. Verkkopalvelin käsittelee sivupyynnöt yleensä PHP-FPM:n kautta. Contao Manager ja Contao-konsoli toimivat lisäksi komentorivi-PHP:llä, esimerkiksi asennuksissa, päivityksissä ja cron-ajoissa. Hosting-paketeissa, joissa on useita PHP-versioita, nämä voivat olla kaksi eri ohjelmaa.

Contao Manager näyttää palvelinasetuksissaan, mitä PHP-ohjelmatiedostoa se käyttää. Web-version näette hosting-paneelista. Korjatut upstream-versiot ovat 8.5.12, 8.4.27, 8.3.36 ja 8.2.35; backportit voivat kantaa vanhempia numeroita. Molempien reittien on oltava korjattuja ja kaikkien prosessien käynnistettyinä uudelleen. Mitä PHP-versioita teidän Contao-versionne tukee, tarkistatte järjestelmävaatimuksista osoitteessa contao.org. Lisää tarkistuksesta sivulla [PHP-version ja korjaustilan tarkistaminen oikein](https://phpsos.de/fi/php2shell/php-version-pruefen/).

## Contaon hakemistot ja tiedostot

| Paikka | Sisältö | Tarkistuskohde |
|---|---|---|
| `.env`, `.env.local` | Tietokantatunnukset, `APP_SECRET` | uusittava epäilyn jälkeen |
| `config/config.yaml` | Asennuksen asetukset | odottamattomat muutokset |
| `public/` (vanhemmissa versioissa `web/`) | Dokumenttijuuri: `index.php`, Contao Manager -tiedosto, assetit | ylimääräiset PHP-tiedostot |
| `files/` | Toimittajien tiedostonhallinta | ei PHP-tiedostoja |
| `templates/` | omat mallipohjat, klassisesti `.html5` PHP:llä | tuntemattomat tai muutetut mallipohjat |
| `system/config/localconfig.php` | vanhemmat asetukset | sisään ujutettu koodi |
| `var/` | välimuisti ja lokit | lokit talteen, välimuisti luodaan uudelleen |

Juuri `templates/` aliarvioidaan: klassiset `.html5`-päätteiset Contao-mallipohjat ovat PHP-tiedostoja. Omaan mallipohjaan ujutettu komento suoritetaan jokaisella sivunkäsittelyllä ja säilyy Contao-päivityksissä.

Vaarattomat ensitarkistukset:

```bash
# PHP-tiedostot tiedostonhallinnassa
find files -type f -name "*.php"
# Mallipohjat, jotka ovat muuttuneet 17.10.2026 jälkeen
find templates -type f -newermt "2026-10-17"
# Tarkistetaan käytettävissä olevat Contao-komennot ja riippuvuudet
vendor/bin/contao-console list contao
composer audit
```

> **Tärkeää:**
> Contao Manager voi asentaa paketteja ja siten tuoda palvelimelle mitä tahansa koodia. Tarkistakaa epäilyn jälkeen sen käyttäjätilit, antakaa uudet salasanat ja poistakaa entisten palveluntarjoajien tunnukset.

## Hallinta, Manager ja laajennukset

Hallinta on osoitteessa `/contao`. Tarkistakaa ylläpitäjäoikeuksilla varustetut käyttäjät ja käyttäjäryhmät, joilla on laajat oikeudet, esimerkiksi tiedostonhallintaan, mallipohjiin tai käyttäjähallintaan. Contao tarjoaa kaksivaiheisen tunnistautumisen; käyttäkää sitä kaikilla korotetuilla oikeuksilla varustetuilla tileillä.

Laajennukset asennetaan Composerilla tai Contao Managerin kautta. Jokainen tuo mukanaan PHP-koodia, ja vanhemmat ylläpitämättömät laajennukset hidastavat PHP-päivityksiä. Palvelimilla, joilla on useita verkkosivustoja, jokaisen asennuksen pitäisi toimia erillään, jotta tapaus ei leviä naapurisivustoille; lisää aiheesta sivulla [open_basedir ja eristys sivustokohtaisesti](https://phpsos.de/fi/ratgeber/open-basedir/).

## Mihin Contao-päivitys pystyy ja mihin ei

Contao-päivitys Managerin tai Composerin kautta sulkee Contaon ja laajennusten tunnetut virheet. Se ei korjaa PHP:tä eikä käynnistä PHP-FPM:ää tai taustaprosesseja uudelleen. Omat mallipohjat, `files/`-kansion tiedostot ja vieraat käyttäjätilit säilyvät muuttumattomina. PHP:n pääversion vaihdon jälkeen välimuisti tulisi luoda uudelleen ja sivusto tarkistaa testiympäristössä.

Sivustoilla, joilla on paljon toimittajia, hallinnan oikeudet kannattaa tarkistaa korjauksen jälkeen. Kuka saa muokata mallipohjia, voi tallentaa PHP-koodia klassisiin `.html5`-mallipohjiin. Tämä oikeus kuuluu vain harvoille, teknisesti taitaville henkilöille. Sama koskee tiedostonhallinnan pääsyä, jossa on latausoikeus julkisesti saavutettaviin kansioihin.

## Miten PHP SOS auttaa konkreettisesti?

- Selvitämme Contao-asennuksenne web- ja CLI-PHP:n ja varmennamme korjauksen ja uudelleenkäynnistyksen.
- Varmuuskopioimme lokit, tiedostot ja tietokannan, ennen kuin muutamme mitään.
- Tarkistamme mallipohjat, `files/`-kansion, dokumenttijuuren sekä hallinnan ja Managerin tilit.
- PHP-vaihdon todisteineen hoitaa pyynnöstä [PHP-korjauspalvelumme](https://phpsos.de/fi/leistungen/php-patch-service/) yhteistyössä toimistonne kanssa.


## Usein kysytyt kysymykset

**Koskeeko PHP2Shell Contaota?**  
Contaossa itsessään ei ole uutta aukkoa. Jos sivusto toimii korjaamattomalla PHP:llä, se on kuitenkin haavoittuva kuten mikä tahansa PHP-sovellus. Contao-päivitys ei sulje PHP-aukkoa.

**Miksi Contao Manager on tietoturvan kannalta tärkeä?**  
Contao Manager voi asentaa, päivittää ja poistaa paketteja. Sen käyttöoikeuden haltija voi tuoda palvelimelle mitä tahansa koodia. Pääsyyn tarvitaan siksi vahva salasana ja vain harvoja käyttäjiä.

**Sisältävätkö Contaon mallipohjat PHP-koodia?**  
Klassiset .html5-päätteiset mallipohjat ovat PHP-mallipohjia. Kansion templates omat mallipohjat voivat siksi sisältää PHP:tä. Tuntemattomat tai äskettäin muutetut mallipohjat teidän pitäisi pystyä selittämään.

## Lähteet

- [php.net: tietoturvatiedotteet](https://www.php.net/)
- [Contao](https://contao.org/)
- [Tuetut PHP-versiot](https://www.php.net/supported-versions.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
