# Ħares APIs REST f'PHP

> Ħares APIs REST f'PHP: awtentikazzjoni, verifika għal kull oġġett, JWT, limiti tad-daqs u tat-tip, messaġġi ta' żball u limitu tar-rata bi kodiċi ta' eżempju.

Sors: https://phpsos.de/mt/blog/rest-api-php-absichern/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**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
<?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](https://phpsos.de/mt/ratgeber/sql-injection-php/). Kif PHP jagħmel disponibbli data tat-talba bħal metodu, header u body jispjegah [Superglobals: $_GET, $_POST, $_FILES u oħrajn](https://phpsos.de/php/superglobals/).

## 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](https://phpsos.de/mt/blog/sichere-tokens-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](https://phpsos.de/mt/blog/post-max-size-upload-limits/).

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](https://phpsos.de/mt/leistungen/sicherheitsaudit-penetrationstest/).

**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

- [OWASP: REST Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html)
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [Manwal ta' PHP](https://www.php.net/manual/de/)
- [php.net: avviżi ta' sigurtà](https://www.php.net/)
