Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

PHP aizsardzība sistēmā Windows un IIS

Sistēmā IIS PHP parasti darbojas kā php-cgi.exe caur FastCGI. Šeit: kā atrast visas instalācijas, droši nomainīt PHP, pārstrādāt lietojumprogrammu pūlus un pārbaudīt rezultātu.

Aktuāls uz 4 min lasīšanas laiksServeri un hostings

Īsi: Sistēmā Windows ar IIS PHP parasti darbojas kā php-cgi.exe caur FastCGI, un PHP2Shell šo darbības režīmu skar skaidri. PHP IIS atjauninājums sastāv no trim soļiem: atrast visas PHP instalācijas, aizstāt tās ar labotu versiju un pārstrādāt lietojumprogrammu pūlus. Pakotņu pārvaldības un backportu kā Linux sistēmās šeit parasti nav.

Kā PHP darbojas IIS

Windows serveros IIS PHP pieslēdz ar FastCGI moduli. Katrai PHP versijai ir FastCGI ieraksts, kas norāda uz php-cgi.exe, un handlera piesaiste, kas failus ar paplašinājumu .php virza turp. IIS pēc vajadzības startē vairākus php-cgi procesus un patur tos aktīvus turpmākiem pieprasījumiem.

Atšķirībā no Linux PHP šeit parasti nenāk no pakotņu pārvaldības, bet kā ZIP arhīvs ar PHP projekta Windows būvējumiem, kā speciālas lietojumprogrammas daļa vai ar vecākiem instalatoriem. Tas nozīmē: atjauninājumi nenotiek automātiski, un distributora backportu nav. Noteicošais ir instalēto failu versijas numurs.

Ko PHP2Shell nozīmē Windows serveriem

PHP2Shell ietver CVE-2026-109618 un CVE-2026-109619 pašā PHP, katru ar CVSS v4.0 9.2. Abas ļauj izpildīt kodu bez autentifikācijas. PHP projekts php-cgi skaidri min starp skartajiem darbības režīmiem. Labotas ir PHP 8.5.12, 8.4.27, 8.3.36 un 8.2.35.

PHP 8.1 un vecākām versijām oficiālu atjauninājumu vairs nav. Windows serveri ar speciālām lietojumprogrammām pieredzē bieži darbojas ar šādiem stāvokļiem, jo lietojumprogramma pieprasa konkrētu versiju. Šeit līdzās pagaidu pasākumiem nepieciešama noskaidrošana ar lietojumprogrammas ražotāju. Fonu par šo darbības režīmu skatiet lapā php-cgi: mantojums ar risku.

PHP IIS atjaunināšana: instalāciju atrašana

Turpmākās PowerShell komandas tikai lasa. Tās parāda, kuras PHP instalācijas izmanto IIS un kāda ir to versija. Ceļi ir piemēri.

# FastCGI ieraksti IIS: kura php-cgi.exe tiek izmantota?
& "$env:windir\system32\inetsrv\appcmd.exe" list config -section:system.webServer/fastCgi

# Katras atrastās instalācijas versija (ceļš kā piemērs)
& "C:\PHP\8.3\php.exe" -v

# Darbojošies php-cgi procesi ar startēšanas laiku
Get-Process php-cgi -ErrorAction SilentlyContinue | Select-Object Id, StartTime, Path

Papildus meklējiet visos diskos citus php-cgi.exe, jo speciālās lietojumprogrammas dažkārt nes līdzi savas kopijas. Katrai instalācijai pierakstiet versiju, variantu (Thread Safe vai Non Thread Safe) un arhitektūru.

Atjauninājuma ieinstalēšana un lietojumprogrammu pūlu pārstrāde

Lejupielādējiet labotu versiju no PHP projekta oficiālajiem Windows būvējumiem, uz kuriem ved saites no php.net, tajā pašā variantā un arhitektūrā. Pierādījies, ka jauno versiju vērts izpakot jaunā mapē, pārņemt esošo php.ini un nepieciešamos paplašinājumus un tad FastCGI ierakstu pārslēgt uz jauno ceļu. Tā vecais stāvoklis paliek atpakaļceļam.

# Pārstrādāt lietojumprogrammas pūlu (nosaukums kā piemērs)
Import-Module WebAdministration
Restart-WebAppPool -Name "Intranet"

# Alternatīvi pārstartēt visus IIS pakalpojumus
iisreset

# Kontrole: vai visi php-cgi procesi startēti pēc atjauninājuma?
Get-Process php-cgi -ErrorAction SilentlyContinue | Select-Object Id, StartTime, Path

Katra php-cgi procesa startēšanas laikam jābūt pēc atjauninājuma, un tam jānorāda uz jauno ceļu. Pēc tam pārbaudiet vietnes. Veco PHP mapi noņemiet, tiklīdz jaunais stāvoklis darbojas stabili, lai tā netiktu nejauši atkal pieslēgta.

Svarīgi

Jauni faili PHP mapē nepietiek, kamēr darbojas veci php-cgi procesi. Ielāps ir spēkā tikai pēc pūlu pārstrādes vai IIS pārstartēšanas.

Pagaidu pasākumi php.ini

Ja instalāciju nevar atjaunināt nekavējoties, php.net iesaka pagaidu pasākumus bez pilnīgas aizsardzības. Sistēmā IIS vērtības iestatiet attiecīgās instalācijas centrālajā php.ini. .user.ini faili un ini_set() saskaņā ar php.net nav pietiekami.

; attiecīgās instalācijas php.ini
session.upload_progress.enabled = 0
post_max_size = 8M
upload_max_filesize = 6M

Ja ir augšupielādes funkcija, php.net min post_max_size = 32M. PHP 8.5 gadījumā klāt nāk fatal_error_backtraces=0. Lai vietnes vērtības nemainītu ar savām .user.ini datnēm, centrālajā php.ini user_ini.filename var iestatīt tukšu; iepriekš pārbaudiet, vai lietojumprogrammas no tā nav atkarīgas. Pēc tam pārstrādājiet pūlus. BSI iesaka tīmekļa serverus uz laiku atvienot no tīkla, ja atjauninājumu nevar ieviest nekavējoties. Citus iestatījumus izskaidro lapa php.ini drošas konfigurēšanas pamati.

Pēc atjauninājuma

Ielāps nenoņem ļaunprātīgu programmatūru, kas tika ievadīta iepriekš. Saglabājiet IIS protokolus no 2026. gada 20. oktobra, pārbaudiet tīmekļa direktorijus, vai nav jaunu skriptu failu, un pārbaudiet ieplānotos uzdevumus un lokālos lietotāju kontus, vai nav nezināmu. Ja serveris darbojas domēnā, jāapskata arī pieteikšanās.

Pievērsiet uzmanību arī lietojumprogrammu pūlu identitāšu tiesībām. Ja pūls darbojas ar kontu, kuram ir rakstīšanas tiesības uz visu tīmekļa direktoriju vai pat administratora tiesības, uzbrucējs pēc veiksmīgas ielaušanās var nodarīt ievērojami vairāk. Lietderīga ir sava, ierobežota identitāte katram pūlam ar rakstīšanas tiesībām tikai tur, kur lietojumprogramma tās patiešām vajadzīgas, piemēram, augšupielāžu vai kešatmiņas mapē. Šajās mapēs IIS nedrīkstētu izpildīt PHP failus; to var regulēt ar attiecīgās mapes handleru piesaistēm. Pārbaudiet arī, vai tīmekļa direktorijā neatrodas veci testa un instalēšanas faili, piemēram, phpinfo izvades, un noņemiet tos.

Kā PHP SOS palīdz konkrēti?

  • Mēs atrodam visas PHP instalācijas jūsu Windows serveros, arī speciālo lietojumprogrammu kopijas.
  • Ar PHP ielāpu pakalpojumu mēs nomainām PHP, pārstrādājam pūlus un dokumentējam versiju un procesu laikus.
  • Vecu versiju gadījumā mēs kopā ar jums un lietojumprogrammas ražotāju noskaidrojam ceļu uz migrāciju uz atbalstītu PHP versiju.
  • Mēs pārbaudām serverus, vai nav uzbrukuma pēdu, un saglabājam protokolus.

Biežāk uzdotie jautājumi

Kuru PHP variantu man vajag IIS?

IIS ar FastCGI parasti izmanto Non-Thread-Safe variantu (NTS). Atjaunināšanas laikā raugieties, lai atkal izvēlētos to pašu variantu un arhitektūru, lai paplašinājumi turpinātu derēt.

Vai pietiek ar jaunās PHP mapes izpakošanu?

Nē. IIS php-cgi.exe procesus kādu laiku patur aktīvus. Pārstrādājiet lietojumprogrammu pūlus vai pārstartējiet IIS un pārbaudiet, ka vecu procesu vairs nav.

Vai vienā IIS var darbināt vairākas PHP versijas?

Jā, ar vairākiem FastCGI ierakstiem un handleru piesaistēm katrai vietnei. Tas gan palielina uzturēšanas darbu. Katrai instalācijai nepieciešams savs atjauninājums un sava kontrole.

Vai PHP sistēmā Windows ir skarts ar PHP2Shell?

Ievainojamības atrodas pašā PHP. Sistēmā IIS PHP parasti darbojas kā php-cgi, ko PHP projekts skaidri pieskaita skartajiem darbības režīmiem. Tāpēc Windows serverus izturieties tikpat steidzami kā Linux serverus.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība