Ako zabezpečiť svoje API rozhranie?

ako zabezpecit api rozhranie
Čo to vlastne je API rozhranie a prečo je potrebné ho zabezpečiť? Nikdy ste o tom nepočuli? Nevadí, v tomto článku sa dozviete viac.

API (Application Programming Interfaces) sú softvérové ​​stavebné bloky, ktoré zabezpečujú komunikáciu a prenos dát medzi dvoma aplikáciami. V momente ak použijete akúkoľvek aplikáciu ako napríklad Facebook použijete API.

Ak prevádzkujete systém na serveri, ktorý ponúka API rozhranie, tento mechanizmus určite potrebujete nastaviť. On totiž zabezpečuje aby váš server nemohol využívať niekto, kto nemá. S tým vám pomôže mechanizmus Cross-Origin Resource Sharing (CORS).

Znie to jednoducho, ako to však nastaviť?

Tento mechanizmus sa nastavuje na úrovni servera, pre každý request musí server v odpovedi pribaliť aj CORS hlavičky (headers), v ktorých určí pravidlá. V týchto pravidlách vieme určiť API metódy, hlavičky a URL klientov ktoré sú povolené.

Ak máte server aj klienta na rovnakej doméne, všetky requesty sú vždy povolené pretože nedochádza k cross-origin ale same-origin requestu. Pre same-origin requesty sa tento mechanizmus nevzťahuje.

cors_example

Ak máte script klienta, ktorý je script type=“module”, spojenie so serverom bude vyžadovať nastavenie CORS mechanizmu. Ak script klienta nie je type=“module”, nevyžaduje sa nastavenie tohto mechanizmu. Historicky totiž prehliadače nevyžadovali tieto bezpečnostné hlavičky. Preto ak máte niekde vo vašom webe starý script, spojenie so serverom by malo byť inak zabezpečené.

Ukážka pravidiel pre server na inej doméne napr: https://wame-server.sk a klienta na doméne napr: https://wame.sk

Access-Control-Allow-Origin: https://wame.sk

Access-Control-Allow-Methods: GET, POST, OPTIONS

Access-Control-Allow-Headers: Content-type, Accept

Kam máte vložiť tieto pravidlá? Odpoveď sa líši podľa toho na akom engine je postavený váš systém na serveri, existujú na to štandardizované konfiguračné postupy: https://enable-cors.org/server.html

Čo ak ste sa rozhodli pre váš server použiť napríklad systém Laravel? Každý takýto framework väčšinou ponúka v svojej dokumentácií návod ako na to. Laravel to má rovnako popísané vo svojej docs: https://laravel.com/docs/11.x/routing#cors

Ako je to s hybridnými mobilnými aplikáciami?

Všetky hybridné mobilné aplikácie sú script type=“module” takže sa vyžaduje nastavenie týchto hlavičiek na serveri. Avšak ak mobilná aplikácia nie je pripojená k doméne tak ako web, preto je potrebné API zabezpečiť iným spôsobom, napríklad autorizačným kľúčom alebo SSL pinningom.

Zdroje:

https://enable-cors.org

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

https://masteringlaravel.io/daily/2024-03-07-something-to-know-if-serving-scripts-for-other-sites

wame logo

Tvoríme e-shopy, aplikácie a informačné systémy

Mohlo by Vás zaujímať

Agentúra Reuters priniesla 13. augusta 2026 správu, ktorá by nemala uniknúť nikomu, kto predáva online. Platobná spoločnosť Adyen v nej upozorňuje, že AI asistenti čoraz častejšie preberajú celý nákup: vyberú produkt, vyberú obchodníka a spustia platbu. Obchodník tak síce dostane objednávku, ale nemusí dostať zákazníka: bez účtu, bez dát, bez dôvodu vrátiť sa. V článku rozoberáme, čo presne sa mení v nákupnej ceste, prečo je situácia v B2B ešte vypuklejšia než v maloobchode, a dávame 7 konkrétnych krokov, ktoré viete urobiť už dnes.
Myslíte si, že objednávanie cez Excel, e-maily či neprehľadný B2B portál vás nič nestojí? Opak je pravdou. Kým je firma malá, procesy nejako bežia. No s pribúdajúcimi partnermi prichádza chaos, chyby, stratený čas obchodníkov, pomalý nákupný proces, reklamácie... Porovnajte si, koľko vás tieto skryté náklady stoja dnes a kedy sa vám oplatí prejsť na moderné B2B riešenie.
Trávia vaši obchodníci hodiny prepisovaním objednávok z e-mailov a potvrdzovaním cien po telefóne? Objavte, ako samoobslužný B2B portál preberie rutinnú administratívu. Vaši partneri si nakúpia sami, za svoje cenníky, zatiaľ čo váš tím získa priestor na reálny predaj. Zistite, ako vám e-shop na mieru s napojením na sklad a účtovníctvo pomôže zautomatizovať celý B2B proces.