# Seisiúin agus cuacha i PHP

> Conas a oibríonn seisiúin agus cuacha PHP: ID seisiúin, stóráil, réamhshocruithe php.ini, dul chun cinn uaslódála agus an beart idirthréimhseach PHP2Shell.

Foinse: https://phpsos.de/ga/php/sessions-und-cookies/  
Staid: 25/10/2026  
Soláthraí: PHP SOS, Cabhair éigeandála PHP agus slándáil freastalaí. Cabhair láithreach trí WhatsApp: https://wa.me/491736494914?text=Dia%20duit%2C%20a%20PHP%20SOS%2C%20t%C3%A1%20cabhair%20de%20dh%C3%ADth%20orainn%20len%C3%A1r%20bhfreastala%C3%AD%20PHP.%20Cuideachta%3A%20%E2%80%A6%20Su%C3%ADomh%20gr%C3%A9as%C3%A1in%3A%20%E2%80%A6

**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
<?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](https://phpsos.de/ga/ratgeber/session-sicherheit-php/) 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
<?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](https://phpsos.de/ga/php/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](https://phpsos.de/ga/php2shell/cve-2026-115560/) leis, leis an leigheas céanna go dtí an chéad eisiúint deisithe rialta eile.

```ini
; 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](https://phpsos.de/ga/blog/session-upload-progress-abschalten/) 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í](https://phpsos.de/ga/leistungen/server-haertung/).
- 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í

- [Lámhleabhar PHP: Cumraíocht seisiúin](https://www.php.net/manual/de/session.configuration.php)
- [Lámhleabhar PHP: Dul chun cinn uaslódála seisiúin](https://www.php.net/manual/de/session.upload-progress.php)
- [Lámhleabhar PHP: setcookie](https://www.php.net/manual/en/function.setcookie.php)
- [php.net: Fógraí slándála](https://www.php.net/)
