# Laravel turvaauk PHP2Shell: rakenduste õige kaitsmine

> Laravel pärast PHP2Shelli kaitsesse: kontrollige PHP-d käsuga artisan about, taaskäivitage queue-töötajad ja Octane, vaadake üle .env, APP_KEY ja storage.

Allikas: https://phpsos.de/et/plattformen/laravel/  
Seis: 25.10.2026  
Pakkuja: PHP SOS, PHP hädaabi ja serveri turvalisus. Kohene abi WhatsAppis: https://wa.me/491736494914?text=Tere%2C%20PHP%20SOS%2C%20vajame%20abi%20oma%20PHP-serveriga.%20Ettev%C3%B5te%3A%20%E2%80%A6%20Veebisait%3A%20%E2%80%A6

**Lühidalt:** Laraveli turvaauk, mida praegu paljud arendajad otsivad, on PHP2Shell ja asub PHP-s endas. Laraveli uuendus seda ei sulge. Olulised on paigatud PHP, kõigi protsesside, sealhulgas queue-töötajate ja Octane'i, taaskäivitus ning failide `.env`, `storage` ja `public` kontroll.

## Mida PHP2Shell Laravel rakendustele tähendab

Laravel on paljude oma arenduste alus: klienditeenindusportaalid, sisemised tööriistad, broneerimissüsteemid, rakenduste API-d. PHP turvaaugud CVE-2026-109618 ja CVE-2026-109619 võimaldavad PHP meeskonna andmetel kahjuliku koodi kaugkäivitamist ilma sisselogimiseta. Kui puhas Laraveli kood on, sealjuures rolli ei mängi.

Mõjutatud on töörežiimid PHP-FPM, Apache koos mod_php-ga, php-cgi, FrankenPHP ja LiteSpeed. Laravel Octane võib kasutada serverina FrankenPHP-d; siis asub PHP FrankenPHP programmis või konteineri tõmmises ja uuendatakse sellega koos. Kuidas see FrankenPHP puhul välja näeb, kirjeldab leht [FrankenPHP kaitsmine](https://phpsos.de/et/server/frankenphp/).

## Laraveli turvaauk: PHP versiooni ja protsesside kontrollimine

Käsurealt näitab `php artisan about` PHP versiooni, Laraveli versiooni ja olulisi sätteid, nagu keskkond ja silumisrežiim. See on aga CLI-PHP versioon. Veebipäringuid töötleb PHP-FPM või Octane ja see võib olla teine versioon. Laske kahtluse korral haldajal kinnitada, milline pakettide seis töötab kõigil teedel.

Upstream'i parandatud versioonid on 8.5.12, 8.4.27, 8.3.36 ja 8.2.35, tagasiportimised (backport) võivad kanda vanemaid numbreid. Milliseid PHP versioone teie Laraveli versioon toetab, kontrollige süsteeminõuete järgi dokumentatsioonis lehel laravel.com.

Pärast uuendust tuleb osa, mis Laraveli puhul kõige sagedamini ununeb: pikaealised protsessid.

```bash
# Versioonide ja konfiguratsiooni kuvamine
php artisan about
# Queue-töötajatele korralduse andmine pärast praegust tööd lõpetada
php artisan queue:restart
# Horizoni lõpetamine, et protsessihaldur selle uuesti käivitaks
php artisan horizon:terminate
```

Töötajad käivituvad pärast seda uuesti ainult siis, kui neid jälgib protsessihaldur, näiteks Supervisor või systemd. Octane'i serverid ja konteinerid tuleb täielikult taaskäivitada või uue tõmmisega välja rullida. Konteinerlahenduste puhul kehtib [PHP paikamine Dockeri konteinerites](https://phpsos.de/et/php2shell/docker-container-patchen/).

## Kus Laravel rakendused on haavatavad

| Koht | Sisu | Kontrollpunkt |
|---|---|---|
| `.env` | `APP_KEY`, andmebaas, e-post, API võtmed | Ei tohi kunagi veebi kaudu kättesaadav olla |
| `bootstrap/cache/config.php` | Vahemällu salvestatud konfiguratsioon saladustega | Õigused, muutmiskuupäev |
| `public/` | Dokumendijuur koos `index.php` | Lisa-PHP failid |
| `storage/app/public` | Üleslaadimised, kättesaadavad kaudu `public/storage` | PHP faile pole |
| `storage/logs/` | `laravel.log`, sageli päringuandmetega | Varundada, mitte avalik |
| `vendor/` | Composeri paketid | `composer audit`, võrdlus `composer.lock`-iga |

Kaust `storage/app/public` on sümboolse lingi kaudu kättesaadav aadressil `public/storage`. Sinna paigutatud PHP faili võib olenevalt serveri konfiguratsioonist otse käivitada. Blokeerige see veebiserveri tasemel.

> **Oluline:**
> `APP_DEBUG` peab tootmises olema väärtusel `false`. Silumisväljundiga veateade võib näidata keskkonnamuutujaid, radu ja osi koodist ning teeb iga ründaja töö lihtsamaks.

## Admin-liidesed ja paketid riskina

Laravel rakendustel ei ole ühtset admin-liidest. Sageli on need oma alad või paketid, nagu Filament või Nova. Kontrollige, kellel on admin-õigused, kas sisselogimisel on kaheastmeline autentimine ja kas admin-marsruudid peavad väljastpoolt kättesaadavad olema. Ka API märke (token), näiteks Sanctumist või Passportist, tuleks kahtluse korral tühistada ja uuesti välja anda.

Kontrollige lisaks, kas arenduse tööriistad on tootmises kättesaadavad, näiteks silumisribad, Telescope või testmarsruudid. Need näitavad sageli päringuid, päringuid andmebaasi ja konfiguratsiooni ning kuuluvad sisselogimise taha või tootmiskeskkonnast täielikult eemaldada.

Composeri paketid on teine suur plokk. Iga sõltuvus toob kaasa oma koodi ja hooldamata paketid takistavad hiljem PHP-upgrade'e. `composer audit` näitab teadaolevaid turvauke, kuid ei asenda oma koodi kontrolli.

## Mida Laraveli uuendus suudab ja mida mitte

Laraveli või üksikute pakettide uuendus sulgeb selle koodi teadaolevad vead. See ei paiga PHP-d, ei taaskäivita töötajaid, ei uuenda lekkinud `APP_KEY`-d ega eemalda faile kaustadest `storage` või `public`. Kas enne paika midagi juhtus, saab selgitada ainult logide, failide ja andmebaasi kontrolliga.

Juurutustoruga (deployment pipeline) meeskondadele kehtib: PHP uuendus kuulub ka ehituskeskkonda ja baastõmmistesse, muidu toob järgmine juurutus taas vana versiooni. Kontrollige lisaks, kas staging- või review-keskkonnad on avalikult kättesaadavad. Need töötavad sageli väärtusega `APP_DEBUG=true` ja päris andmetega ning jäävad turvauuenduste puhul kergesti märkamata.

## Kuidas PHP SOS konkreetselt aitab?

- Kontrollime teie Laravel rakenduse veebi-, CLI- ja töötaja-PHP-d ning toetame kõigi protsesside korrapärast taaskäivitust.
- Varundame logid alates 20.10.2026, andmebaasi ja koodiseisu ning võrdleme seda teie hoidlaga.
- Kontrollime `.env`, konfiguratsiooni vahemälu, `storage`, `public`, admin-kontosid ja API märke.
- Oma koodi põhjalikumaks kontrolliks vahendame spetsialiseerunud partnerite kaudu [turvaauditi või penetratsioonitesti](https://phpsos.de/et/leistungen/sicherheitsaudit-penetrationstest/).


## Korduma kippuvad küsimused

**Kas pean Laraveli PHP2Shelli tõttu uuendama?**  
Laraveli uuendus ei sulge PHP2Shelli, sest turvaauk asub PHP interpretaatoris. Hoidke Laravel siiski ajakohasena. PHP2Shelli jaoks vajate paigatud PHP-d ja kõigi PHP protsesside, ka töötajate, taaskäivitust.

**Miks ei piisa Laraveli puhul sageli PHP-FPM-i taaskäivitusest?**  
Queue-töötajad, Horizon, Octane ja ajastaja töötavad omaette PHP protsessidena käsurealt. Nad laadivad PHP ühe korra käivitamisel ja töötavad seejärel mälus oleva vana versiooniga edasi, kuni need taaskäivitatakse.

**Mida teha, kui fail .env võis lekkida?**  
Siis peaksite uuendama APP_KEY, andmebaasi parooli ja kõik välisteenuste võtmed. Arvestage, et uus APP_KEY lõpetab olemasolevad sessioonid ja muudab vana võtmega krüpteeritud andmed loetamatuks; planeerige see oma arendajatega.

## Allikad

- [php.net: turvateated](https://www.php.net/)
- [Laravel](https://laravel.com/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
