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 →

APInna REST i PHP a chosaint

Is minic comhéadain níos measa cosanta ná an suíomh gréasáin os a gcomhair. Na príomhrialacha d'APInna REST i PHP, ón gceadú do gach réad go dtí teorannú ráta.

Staid Am léitheoireachta: 6 nóim.Forbairt shlán

Go achomair: I slándáil API i PHP is cúig phointe go príomha a bhfuil tábhacht leo: HTTPS amháin, fíordheimhniú ag gach críochphointe nach bhfuil poiblí, seiceáil cheadanna do gach réad aonair, teorainneacha dochta do mhodh, cineál ábhair agus méid an iarratais, chomh maith le teachtaireachtaí earráide gearra gan sonraí inmheánacha. Ina theannta sin tá teorannú ráta agus taifead d'imeachtaí a bhaineann le slándáil. I gcoinne laigí san ateangaire PHP féin ar nós PHP2Shell, ní chabhraíonn sé seo; chuige sin teastaíonn an nuashonrú PHP.

An comhéadan taobh thiar den suíomh gréasáin

Sheiceáil a lán cuideachtaí a suíomhanna gréasáin sa tseachtain tar éis an 21.10.2026. Ní raibh na comhéadain taobh thiar orthu ar an liosta chomh minic. Ach is ansin go beacht a ritheann próisis íogaire: faigheann aip an tairseach custaiméirí sonraisc, scríobhann an córas bainistíochta earraí stoic isteach sa siopa, tuairiscíonn comhpháirtí orduithe trí webhook. Is minic a tógadh na APInna seo go tapa, le haghaidh aon chuspóir amháin, agus níor breathnaíodh orthu arís ina dhiaidh sin.

Níl dromchla ag API a dhéanann earráidí infheicthe. Ní thugann aon duine faoi deara seiceáil cheadanna atá ar iarraidh sa saol laethúil, fad is nach gcuireann gach cliant ceist ach ar an méid ba cheart. Triaileann ionsaitheoir, ar an láimh eile, go beacht an rud nach bhfuil beartaithe.

Is é an chéad chéim mar sin fardal a thógáil. Cé na críochphointí atá ann ar chor ar bith? Faightear go minic seanleaganacha ar nós /api/v1/ nár múchadh riamh tar éis dul chuig /v2/, críochphointí tástála ón bhforbairt nó cur síos comhéadain inghlaoite go poiblí a liostaíonn feidhmeanna inmheánacha. Ba cheart gach críochphointe nach bhfuil de dhíth a thuilleadh a mhúchadh. Teastaíonn duine freagrach ó gach ceann a fhanann.

Slándáil API i PHP: na bunrialacha

Achoimríonn Cheat Sheet Slándála REST OWASP rialacha tástáilte. Do thionscadail PHP is féidir iad a aistriú ina liosta ghearr:

  1. HTTPS amháin. Ní ceart comharthaí ná sonraí rochtana a tharchur gan chriptiú riamh.
  2. Seiceálann gach críochphointe é féin. Is féidir an fíordheimhniú a dhéanamh go lárnach, déantar an cinneadh faoi rochtain ag an gcríochphointe.
  3. Cead do gach réad. Ní hamháin „tá sé logáilte isteach“, ach „tá cead aige an taifead seo go beacht“.
  4. Modhanna ceadaithe a shocrú. Diúltaítear le 405 don rud nach gceadaítear go sainráite.
  5. Cineál ábhair agus méid a sheiceáil. Cineál mícheart: 415, iarratais ró-mhóra: 413.
  6. Ionchuir a bhailíochtú. Cineál, fad, formáid agus raon luachanna, ar thaobh an fhreastalaí.
  7. Gan rúin in URLanna. Baineann comharthaí agus eochracha le ceanntásca, ní leis an query-string.
  8. Earráidí gearra. Gan stacrianta, cosáin ná teachtaireachtaí SQL chuig an gcliant.
  9. Teorannú ráta. Freagraítear le 429 d'iomarca iarratas.
  10. Críochphointí riaracháin a scagadh. Gan iad a bheith inrochtana go poiblí nó le logáil isteach láidir amháin.

Ceadú do gach réad: an earráid is coitianta

Déanann sampla an fhadhb inláimhsithe. Seachadann críochphointe sonraisc faoi /api/rechnungen/{id}. Seiceáiltear an bhfuil comhartha bailí ann. Ní sheiceáiltear an mbaineann an sonrasc le custaiméir an chomhartha. An té a ardaíonn a uimhir sonraisc féin le haon, feiceann sé sonrasc a chomharsan.

Tá an réiteach simplí agus ní mór é a chur i bhfeidhm ar gach áit mar sin féin: cuireann an fiosrú féin srian leis an réimse údaraithe.

<?php
// Gan ach modh GET a cheadú
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    http_response_code(405);
    header('Allow: GET');
    exit;
}

$kundeId = $auth->kundeId();          // ón gcomhartha seiceáilte
$id = filter_var($routeId, FILTER_VALIDATE_INT);
if ($id === false) {
    http_response_code(400);
    exit;
}

// Tá an cead san fhiosrú: sonraisc féin amháin
$stmt = $pdo->prepare('SELECT nummer, betrag, datum FROM rechnungen WHERE id = ? AND kunde_id = ?');
$stmt->execute([$id, $kundeId]);
$rechnung = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$rechnung) {
    http_response_code(404);           // gan a nochtadh an bhfuil an ID ann
    exit;
}

header('Content-Type: application/json');
echo json_encode($rechnung, JSON_THROW_ON_ERROR);

Cosnaíonn an fiosrú le sealbhóirí áite i gcoinne SQL injection ag an am céanna, féach SQL injection a chosc i PHP. Conas a chuireann PHP sonraí iarratais ar nós modh, ceanntásca agus corp ar fáil, míníonn Superglobals: $_GET, $_POST, $_FILES agus eile.

Comharthaí a sheiceáil i gceart

Oibríonn a lán APInna le JSON Web Tokens. Ainmníonn Cheat Sheet OWASP rialacha soiléire chuige sin: ní mór comharthaí a bheith sínithe, diúltaítear do chomharthaí gan síniú, agus socraítear an algartam don tseiceáil ar an bhfreastalaí, ní glactar leis ón gcomhartha. Baineann eisitheoir, lucht féachana agus am éaga leis an tseiceáil freisin. Úsáid leabharlann chothabháilte chuige sin in ionad cur i bhfeidhm féin.

Ní mór do chomharthaí féin, mar shampla do webhooks nó do naisc aonuaire, teacht ó ghineadóir randamach slán go cripteagrafach agus comparáid a dhéanamh leo in am seasta. Conas é sin a dhéanamh i PHP, léiríonn Uimhreacha randamacha slána agus comharthaí i PHP.

Leid

Tabhair eochair dá chuid féin do gach cliant agus do gach comhpháirtí leis na cearta a bhfuil siad de dhíth go beacht. Ansin is féidir eochair a sceitheadh a bhlocáil go haonair, gan gach nasc eile a bhriseadh.

Teorainneacha a leagan síos: méid, cineál agus luas

Níor cheart d'API glacadh ach leis an méid atá ag súil leis. Tosaíonn sé sin le cineál an ábhair: diúltaíonn críochphointe a phróiseálann JSON do gach rud eile. Cuireann tú teorainn le huasmhéid iarratais ar roinnt leibhéal, sa fhreastalaí gréasáin agus i PHP trí post_max_size. Baineann an teorainn seo leis na bearta idirthréimhseacha a d'ainmnigh php.net maidir le PHP2Shell. Conas í a roghnú go ciallmhar, déanann post_max_size agus upload_max_filesize a theorannú go ciallmhar cur síos air.

Cosnaíonn teorannú ráta i gcoinne aitheantóirí a thriail agus i gcoinne ró-ualaithe. Is féidir é a chur i bhfeidhm sa fhreastalaí gréasáin, i seachfhreastalaí roimh ré nó san fheidhmchlár. Tá sé tábhachtach go mbaineann teorainneacha le gach eochair nó úsáideoir agus ní le seoladh IP amháin.

Do APInna a ghlaoitear go díreach ón mbrabhsálaí, tagann CORS isteach, is é sin na rialacha faoi cé na suíomhanna gréasáin coimhthíocha a bhfuil cead acu iarratais a dhéanamh. Ná socraigh na ceanntásca seo ach má tá glaonna den sórt sin beartaithe i ndáiríre, agus ainmnigh na bunúsanna ceadaithe ceann ar cheann in ionad gach bunús a cheadú. Is beagnach i gcónaí earráid é sealbhóir áite a cheadaíonn gach suíomh gréasáin ag críochphointí le logáil isteach.

Ar deireadh an taifead: baineann logálacha isteach teipthe, comharthaí diúltaithe agus rochtain dhiúltaithe leis an loga, ní comharthaí féin. Gan na hiontrálacha seo fanann ionsaí ar an API dofheicthe.

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

  • Taifeadaimid gach comhéadan de do chórais PHP, na cinn dearmadta agus inmheánacha san áireamh, agus seiceálaimid cé acu atá inrochtana go poiblí.
  • Léimid an loighic cheadanna agus déanaimid tástáil go sonrach an féidir taifid choimhthíocha a ghlaoch.
  • Leagaimid teorainneacha síos do mhéid, do chineál agus do luas sa fhreastalaí gréasáin agus i PHP agus comhordaímid iad le do chliaint.
  • Le haghaidh seiceála cuimsithí ón taobh amuigh, comhcheanglaímid é seo le hiniúchadh slándála agus tástáil threáite.

Conclúid: Tá API chomh slán lena críochphointe is neamartaí. An té a sheiceálann ceadanna do gach réad, a leagann teorainneacha soiléire síos agus a choinníonn earráidí gearra, dúnann sé na bearnaí is minice i bhfad sula lorgaíonn aon duine iad go sonrach.

Ceisteanna coitianta

An leor eochair API mar chosaint?

Do shonraí íogaire ní leor. Aithníonn eochair API feidhmchlár de ghnáth, ní úsáideoir, agus tugtar ar aghaidh go héasca í. Molann Cheat Sheet Slándála REST OWASP gan eochracha API a úsáid mar an t-aon chosaint ar acmhainní íogaire.

Cad is ceadú do gach réad ann agus cén fáth a mbíonn sé ar iarraidh chomh minic sin?

Is é atá i gceist ná an tseiceáil an bhfuil cead ag an úsáideoir logáilte isteach an taifead seo go beacht a fheiceáil nó a athrú. Bíonn sé ar iarraidh go minic toisc nach seiceálann forbróirí ach an bhfuil duine ar bith logáilte isteach. Ansin is leor aitheantóir san URL a athrú chun sonraí coimhthíocha a ghlaoch.

An gcosnaíonn API atá cosanta go maith i gcoinne PHP2Shell?

Ní chosnaíonn. Tá PHP2Shell san ateangaire PHP agus bíonn éifeacht aige i modhanna oibriúcháin lena mbaineann sula ritheann do chód ar chor ar bith. Ní chabhraíonn ach nuashonrú PHP le hatosú ina choinne. Tá teorainneacha méide d'iarratais ciallmhar ar aon nós agus baineann siad le bearta idirthréimhseacha php.net.

Cé na cóid stádais ba cheart d'API a sheachadadh ag earráidí slándála?

Is gnách 401 gan logáil isteach bhailí, 403 nuair a bhíonn cead ar iarraidh, 405 le modh nach gceadaítear, 413 le hiarratas ró-mhór, 415 le cineál ábhair mícheart agus 429 le hiomarca iarratas. Fanann an freagra féin gearr agus gan sonraí inmheánacha.

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