An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Seisiúin agus cuacha i PHP

Déanann seisiúin logáil isteach de HTTP gan staid a mhaireann thar roinnt leathanach. Seo conas a réitíonn PHP é seo go hinmheánach, cé na réamhshocruithe atá i bhfeidhm agus cad é an bhaint atá ag session.upload_progress le PHP2Shell.

Staid Am léitheoireachta: 5 nóim.Eolas PHP

Go achomair: Ní cuimhin le HTTP aon rud idir dhá iarratas. Réitíonn seisiún PHP é sin: tugann PHP ID seisiúin randamach, seolann sé chuig an mbrabhsálaí é mar chuach agus stórálann sé na sonraí a bhaineann leis ar an bhfreastalaí, mar chomhad de réir réamhshocraithe. Le gach iarratas eile, léann session_start() na sonraí arís de réir an ID. Baineann an fheidhm session.upload_progress le seisiún PHP freisin, a molann php.net a mhúchadh go sealadach ar thaobh an fhreastalaí mar gheall ar PHP2Shell.

Cén fáth a dteastaíonn seisiúin ó fheidhmchláir ghréasáin

Seasann gach iarratas ar fhreastalaí gréasáin dó féin. Gan mheicníocht bhreise, ní bheadh a fhios ag siopa nuair a chliceáiltear ar “Ciseán” cé a chuir rud éigin isteach ann díreach anois, agus b'éigean do limistéar riaracháin an pasfhocal a iarraidh le gach cliceáil. Nascann seisiúin iarratais aonair le chéile ina seisiún.

Do lucht cinnteoireachta ciallaíonn sé seo: tar éis logáil isteach, tá an ID seisiúin chomh luachmhar le hainm úsáideora agus pasfhocal le chéile. Do riarthóirí ciallaíonn sé: is ceist slándála é cá bhfuil sonraí seisiúin agus conas, go háirithe ar fhreastalaithe le roinnt suíomhanna gréasáin.

Cad a tharlaíonn le session_start()

Tá an sreabhadh mar an gcéanna le gach iarratas agus is féidir cur síos a dhéanamh air i gcúig chéim:

  1. Seolann an brabhsálaí an chuach leis an ainm seisiúin, PHPSESSID de réir réamhshocraithe.
  2. Léann session_start() an ID agus cuireann sé chuig an láimhseálaí stórála é, files de réir réamhshocraithe.
  3. Luchtaíonn an láimhseálaí na sonraí stóráilte, aistríonn PHP ar ais iad leis an serialize_handler agus líonann sé $_SESSION.
  4. Léann an script $_SESSION agus athraíonn sé é cosúil le gnáth-eagar.
  5. Ag deireadh an iarratais, scríobhann PHP na sonraí ar ais. Le session.lazy_write (réamhshocrú: air) ach amháin má tá siad athraithe.
<?php
session_start();

$_SESSION['besuche'] = ($_SESSION['besuche'] ?? 0) + 1;
echo 'Seitenaufrufe in dieser Sitzung: ', (int) $_SESSION['besuche'];

Mura bhfuil seisiún ann fós, cruthaíonn PHP ID nua agus leagann sé an chuach. Má tá session.use_strict_mode gníomhach, diúltaíonn PHP do IDanna anaithnide a sheolann an brabhsálaí agus cruthaíonn sé ceann nua. Measann lámhleabhar PHP go bhfuil an socrú seo éigeantach don bhunslándáil.

Réamhshocruithe ba cheart a bheith ar eolas

Tá na luachanna seo a leanas i bhfeidhm de réir lámhleabhar PHP, mura bhfuil aon rud eile cumraithe. Socraíonn a lán dáiltí agus soláthraithe óstála luachanna dá gcuid féin, dá bhrí sin is tábhachtaí i gcónaí an chumraíocht atá i bhfeidhm i ndáiríre.

Socrú Réamhshocrú Brí
session.save_handler files áit stórála na sonraí, Redis nó bunachar sonraí indéanta freisin
session.name PHPSESSID ainm na cuaiche
session.serialize_handler php formáid na sonraí stóráilte
session.use_strict_mode 0 glactar le IDanna anaithnide
session.use_only_cookies 1 gan ID seisiúin sa seoladh
session.cookie_httponly 0 is féidir le JavaScript an chuach a léamh
session.cookie_secure 0 an chuach fiú thar HTTP gan chriptiú
session.cookie_samesite folamh gan tréith SameSite
session.gc_maxlifetime 1440 soicindí go dtí an glanadh indéanta
session.gc_probability / gc_divisor 1 / 100 glanadh ag thart ar gach céadú tús
session.upload_progress.enabled 1 scríobhtar dul chun cinn uaslódála isteach sa seisiún

Dá bhrí sin níl na luachanna do cookie_httponly, cookie_secure agus use_strict_mode deartha don tslándáil as an monarcha. Déanann an treoir Seisiúin i PHP a chosaint cur síos ar an gcaoi leo a shocrú i gceart. Tá na socruithe session.sid_length agus session.sid_bits_per_character marcáilte mar shean ó PHP 8.4.0.

Cuacha a shocrú go díreach

Chomh maith leis an gcuach seisiúin, is féidir le feidhmchlár cuacha dá chuid féin a shocrú. Ó PHP 7.3.0 glacann setcookie() le heagar roghanna chuige sin, samesite san áireamh. Ó PHP 8.5.0 tá an rogha partitioned ann freisin.

<?php
setcookie('sprache', 'de', [
    'expires'  => time() + 60 * 60 * 24 * 30,
    'path'     => '/',
    'secure'   => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

De réir an lámhleabhair, nuair a bhíonn samesite ar None, ní mór secure a bheith socraithe freisin, nó cuireann an brabhsálaí bac ar an gcuach. Is sonraí an bhrabhsálaí iad cuacha: tagann a n-ábhar ar ais leis an gcéad iarratas eile trí $_COOKIE agus ní mór é a sheiceáil cosúil le haon ionchur eile. Tuilleadh ar an leathanach Superglobals.

session.upload_progress: taispeáint dul chun cinn d'uaslódálacha

Is féidir le PHP dul chun cinn a scríobh isteach sa seisiún le linn uaslódála comhaid. Chuige sin seolann an fhoirm réimse folaithe leis an ainm ó session.upload_progress.name, PHP_SESSION_UPLOAD_PROGRESS de réir réamhshocraithe. Ansin cuireann PHP na sonraí i $_SESSION faoi eochair leis an réimír upload_progress_, le sonraí ar nós am tosaithe, méid iomlán agus bearta próiseáilte cheana.

Tábhachtach le tuiscint: de réir an lámhleabhair, scríobhann PHP an fhaisnéis seo isteach sa seisiún sula ritear aon script. Mar sin oibríonn an fheidhm le linn phróiseáil an iarratais, fós roimh chód an fheidhmchláir. Is den chineál INI_PERDIR a socruithe agus ní féidir iad a athrú le linn an ama rite.

Seisiúin agus PHP2Shell: an beart idirthréimhseach

Mar cheann de na bearta idirthréimhseacha i gcoinne leochaileachtaí PHP2Shell, luann php.net session.upload_progress.enabled=0 a leagan síos in php.ini, sa linn FPM nó i gcumraíocht an fhreastalaí agus gach oibrí a atosú ina dhiaidh sin, go sainráite ní trí ini_set() ná .user.ini. Ar an 23.10.2026 cuireadh an nóta faoi CVE-2026-115560 leis, leis an leigheas céanna go dtí an chéad eisiúint deisithe rialta eile.

; Linn FPM an tsuímh ghréasáin, ansin gach oibrí a atosú
php_admin_flag[session.upload_progress.enabled] = off

De réir tuarascálacha teicniúla, ní dhúnann an socrú seo ina n-aonar an dá leochaileacht. Fanann nuashonrú go PHP 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 éigeantach. An úsáideann d'fheidhmchlár dul chun cinn uaslódála ar chor ar bith agus conas an socrú a leagan síos go buan, déanann an t-alt session.upload_progress a mhúchadh cur síos air.

Conas a chabhraíonn PHP SOS go praiticiúil?

  • Léimid amach na socruithe seisiúin atá i bhfeidhm i ndáiríre do gach suíomh gréasáin, ní luachanna na líne ordaithe amháin.
  • Leagaimid bearta idirthréimhseacha PHP2Shell síos do gach linn, atosaímid gach oibrí agus seiceálaimid an toradh.
  • Scaraimid áiteanna stórála seisiún agus úsáideoirí linne idir suíomhanna gréasáin mar chuid de chruatú freastalaí.
  • Tar éis teagmhais, séanaimid gach seisiún atá ann ionas go mbíonn IDanna seisiúin goidte gan luach.

Ceisteanna coitianta

Cad é an difríocht idir cuach agus seisiún?

Is taifead beag é cuach a stórálann an brabhsálaí agus a sheolann sé leis le gach iarratas. Stórálann seisiún na fíorshonraí ar an bhfreastalaí; sa chuach níl ach aitheantóir randamach, an ID seisiúin.

Cé chomh fada a mhaireann seisiún PHP?

Is bailí an chuach seisiúin de réir réamhshocraithe go dtí go ndúntar an brabhsálaí. Féadfar na sonraí ar an bhfreastalaí a ghlanadh tar éis session.gc_maxlifetime, 1440 soicind gan rochtain de réir réamhshocraithe. Cathain a tharlaíonn sé sin i ndáiríre, braitheann sé ar loighic ghlantacháin an chórais.

Cad a dhéanann session.upload_progress?

Scríobhann an fheidhm dul chun cinn le linn uaslódála comhaid isteach sa seisiún ionas gur féidir le dara hiarratas é a thaispeáint. Tá sé gníomhach de réir réamhshocraithe. Mar gheall ar PHP2Shell, molann php.net é a mhúchadh go sealadach ar thaobh an fhreastalaí.

An leor session.upload_progress a mhúchadh trí ini_set()?

Ní leor. Ní féidir an socrú a athrú le linn an ama rite ar aon nós, de réir an lámhleabhair, agus luann php.net go sainráite php.ini, linn FPM nó cumraíocht an fhreastalaí mar na háiteanna ceart, ní ini_set() ná .user.ini. Ansin gach oibrí a atosú.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach