Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Ħares APIs REST f'PHP

L-interfaces spiss ikunu protetti agħar mill-websajt quddiemhom. L-aktar regoli importanti għal APIs REST f'PHP, mid-dritt fuq l-oġġett sal-limitu tar-rata.

Stat 5 min. qariŻvilupp sigur

Fil-qosor: Għas-sigurtà tal-API f'PHP jgħoddu l-aktar ħames punti: biss HTTPS, awtentikazzjoni f'kull endpoint mhux pubbliku, verifika tad-drittijiet għal kull oġġett individwali, limiti stretti għall-metodu, għat-tip tal-kontenut u għad-daqs tat-talba, kif ukoll messaġġi ta' żball qosra mingħajr dettalji interni. Ta' dan jiżdiedu limitu tar-rata u protokoll ta' avvenimenti rilevanti għas-sigurtà. Kontra vulnerabbiltajiet fl-interpretatur ta' PHP innifsu bħal PHP2Shell dan ma jgħinx; għal dan hemm bżonn l-aġġornament ta' PHP.

L-interface wara l-websajt

Ħafna kumpaniji fil-ġimgħa wara l-21/10/2026 ivverifikaw il-websajts tagħhom. L-interfaces wara dawn kienu aktar rari fuq il-lista. Madankollu eżattament hemmhekk jgħaddu proċessi sensittivi: l-app tal-portal tal-klijenti tiġbed fatturi, is-sistema tal-ġestjoni tal-merkanzija tikteb stokkijiet fil-ħanut, sieħeb jirrapporta ordnijiet permezz ta' webhook. Spiss dawn l-APIs inbnew malajr, għal skop wieħed, u wara qatt ma ġew eżaminati mill-ġdid.

API m'għandhiex interface li turi l-iżbalji. Verifika tad-drittijiet nieqsa ħadd ma jinduna biha fl-għajxien ta' kuljum, sakemm il-clients kollha jistaqsu biss dak li suppost. Attakkant, għall-kuntrarju, jipprova eżattament dak li mhux previst.

L-ewwel pass huwa għalhekk inventarju. Liema endpoints jeżistu fl-ewwel lok? Spiss insibu verżjonijiet qodma bħal /api/v1/ li qatt ma ġew mitfija wara l-bidla għal /v2/, endpoints tat-test mill-iżvilupp jew deskrizzjoni tal-interface aċċessibbli pubblikament li telenka funzjonijiet interni. Kull endpoint li ma jinħtieġx aktar għandu jiġi mitfi. Kull wieħed li jibqa' jeħtieġ responsabbli.

Sigurtà tal-API f'PHP: ir-regoli bażiċi

Il-OWASP REST Security Cheat Sheet jiġbor regoli mgħarrba. Għal proġetti PHP jistgħu jiġu tradotti f'lista qasira:

  1. Biss HTTPS. Tokens u dettalji tal-aċċess qatt m'għandhom jiġu trasferiti mhux iċċifrati.
  2. Kull endpoint jivverifika hu stess. L-awtentikazzjoni tista' ssir b'mod ċentrali, id-deċiżjoni dwar l-aċċess tiġi meħuda fl-endpoint.
  3. Dritt għal kull oġġett. Mhux biss „huwa mdaħħal“, imma „jista' eżattament dan ir-rekord“.
  4. Iddefinixxi l-metodi permessi. Dak li mhux espliċitament permess jiġi rifjutat b'405.
  5. Ivverifika t-tip tal-kontenut u d-daqs. Tip ħażin jagħti 415, talbiet kbar wisq 413.
  6. Ivvalida l-inputs. Tip, tul, format u firxa tal-valuri, fuq in-naħa tas-server.
  7. L-ebda sigrieti f'URLs. Tokens u ċwievet jappartjenu f'headers, mhux fil-query string.
  8. Żbalji qosra. L-ebda stacktraces, mogħdijiet jew messaġġi SQL lill-client.
  9. Limitu tar-rata. Wisq talbiet jiġu mweġbin b'429.
  10. Aħbi endpoints ta' amministrazzjoni. Mhux aċċessibbli pubblikament jew biss b'login b'saħħtu.

Dritt fuq l-oġġett: l-iżball l-aktar frekwenti

Eżempju jagħmel il-problema konkreta. Endpoint jagħti fatturi taħt /api/rechnungen/{id}. Jiġi vverifikat jekk hemm token validu. Mhux jiġi vverifikat jekk il-fattura tappartjenix lill-klijent tat-token. Min iżid b'wieħed in-numru tal-fattura proprja, jara dik tal-ġar.

Is-soluzzjoni hija sempliċi u madankollu trid tiġi implimentata f'kull post: il-mistoqsija nnifisha tillimita għall-qasam awtorizzat.

<?php
// Ippermetti biss il-metodu GET
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
    http_response_code(405);
    header('Allow: GET');
    exit;
}

$kundeId = $auth->kundeId();          // mit-token vverifikat
$id = filter_var($routeId, FILTER_VALIDATE_INT);
if ($id === false) {
    http_response_code(400);
    exit;
}

// Id-dritt jinsab fil-mistoqsija: biss fatturi proprji
$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);           // tiżvelax jekk l-ID teżistix
    exit;
}

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

Il-mistoqsija b'placeholders tipproteġi fl-istess ħin minn SQL injection, ara Evita SQL Injection f'PHP. Kif PHP jagħmel disponibbli data tat-talba bħal metodu, header u body jispjegah Superglobals: $_GET, $_POST, $_FILES u oħrajn.

Ivverifika t-tokens sewwa

Ħafna APIs jaħdmu b'JSON Web Tokens. Il-OWASP Cheat Sheet jagħti regoli ċari għal dan: it-tokens iridu jkunu ffirmati, tokens mhux iffirmati jiġu rifjutati, u l-algoritmu għall-verifika jiġi stabbilit fuq is-server, mhux meħud mit-token. Min joħroġ, l-udjenza u l-ħin tal-iskadenza jappartjenu wkoll għall-verifika. Uża għal dan librerija miżmuma minflok implimentazzjonijiet proprji.

Tokens proprji, pereżempju għal webhooks jew links ta' darba, iridu jiġu minn ġeneratur każwali kriptografikament sigur u jitqabblu f'ħin kostanti. Kif dan isir f'PHP juri Numri każwali u tokens sikuri f'PHP.

Suġġeriment

Agħtu lil kull client u lil kull sieħeb ċavetta proprja bid-drittijiet eżatti li jeħtieġ. Mbagħad ċavetta li ħarġet tista' tiġi mblukkata individwalment, mingħajr ma jinqatgħu l-konnessjonijiet l-oħra kollha.

Poġġi limiti: daqs, tip u veloċità

API għandha taċċetta biss dak li tistenna. Dan jibda mat-tip tal-kontenut: endpoint li jipproċessa JSON jirrifjuta kull ħaġa oħra. Id-daqs massimu ta' talba tillimitawh fuq diversi livelli, fis-server tal-web u f'PHP permezz ta' post_max_size. Dan il-limitu jappartjeni wkoll għall-miżuri temporanji li php.net semma għal PHP2Shell. Kif jintgħażel b'mod sensat jiddeskrivi Illimita post_max_size u upload_max_filesize b'mod sensat.

Il-limitu tar-rata jipproteġi mit-tentattivi ta' identifikaturi u mit-tagħbija żejda. Jista' jiġi implimentat fis-server tal-web, f'proxy quddiem jew fl-applikazzjoni. Importanti li l-limiti jgħoddu għal kull ċavetta jew utent u mhux biss għal kull indirizz IP.

Għal APIs li jissejħu direttament mill-browser jiżdied CORS, jiġifieri r-regoli dwar liema websajts barranin jistgħu jagħmlu talbiet. Issettjaw dawn l-headers biss jekk sejħiet bħal dawn huma tassew previsti, u semmu l-oriġini permessi individwalment, minflok ma tippermettu kull oriġini. Placeholder li jippermetti l-websajts kollha huwa f'endpoints b'login kważi dejjem żball.

Fl-aħħar il-protokoll: logins li falliw, tokens rifjutati u aċċessi miċħuda jappartjenu fil-log, it-tokens stess le. Mingħajr dawn l-entrati attakk fuq l-API jibqa' inviżibbli.

Kif tgħin PHP SOS b'mod konkret?

  • Nirreġistraw l-interfaces kollha tas-sistemi PHP tagħkom, anke dawk minsija u interni, u nivverifikaw liema huma aċċessibbli pubblikament.
  • Naqraw il-loġika tad-drittijiet u nittestjaw b'mod mirat jekk rekords barranin jistgħux jinġiebu.
  • Nistabbilixxu limiti tad-daqs, tat-tip u tal-veloċità fis-server tal-web u f'PHP u nikkoordinawhom mal-clients tagħkom.
  • Għal verifika komprensiva mill-barra nikkombinaw dan ma' awditu tas-sigurtà u test ta' penetrazzjoni.

Konklużjoni: API hija sigura daqs l-aktar endpoint traskurat tagħha. Min jivverifika d-drittijiet għal kull oġġett, jistabbilixxi limiti ċari u jżomm l-iżbalji qosra, jagħlaq l-aktar vulnerabbiltajiet frekwenti, ħafna qabel ma xi ħadd ifittxuhom b'mod mirat.

Mistoqsijiet frekwenti

Ċavetta tal-API hija biżżejjed bħala protezzjoni?

Għal data sensittiva le. Ċavetta tal-API ġeneralment tidentifika applikazzjoni, mhux utent, u tingħadda faċilment. Il-OWASP REST Security Cheat Sheet jagħti parir li ċwievet tal-API ma jintużawx bħala l-uniku protezzjoni għal riżorsi sensittivi.

X'inhu dritt fuq l-oġġett u għaliex spiss ikun nieqes?

Hija l-verifika jekk l-utent imdaħħal jistax jara jew ibiddel eżattament dan ir-rekord. Spiss tkun nieqsa, għax l-iżviluppaturi jivverifikaw biss jekk xi ħadd huwa mdaħħal fl-ewwel lok. Allura biżżejjed li tibdel identifikatur fl-URL biex tilħaq data barranija.

API sigurata sew tipproteġi minn PHP2Shell?

Le. PHP2Shell jinsab fl-interpretatur ta' PHP u jaħdem fil-modalitajiet affettwati qabel ma jaħdem xi kodiċi tagħkom. Kontra dan jgħin biss aġġornament ta' PHP b'restart. Limiti tad-daqs tat-talbiet huma sensati xorta waħda u jappartjenu wkoll għall-miżuri temporanji ta' php.net.

Liema status codes għandha tagħti API f'każ ta' żbalji tas-sigurtà?

Tas-soltu 401 mingħajr login validu, 403 b'nuqqas ta' dritt, 405 b'metodu mhux permess, 413 b'talba kbira wisq, 415 b'tip ta' kontenut ħażin u 429 b'wisq talbiet. It-tweġiba nfisha tibqa' qasira u mingħajr dettalji interni.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata