{"id":4727,"date":"2026-08-11T20:58:51","date_gmt":"2026-08-11T18:58:51","guid":{"rendered":"https:\/\/www.sycope.com\/?post_type=dictionary-item&#038;p=4727"},"modified":"2026-08-11T22:47:22","modified_gmt":"2026-08-11T20:47:22","slug":"api","status":"publish","type":"dictionary-item","link":"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/api","title":{"rendered":"API"},"content":{"rendered":"<p><strong>API<\/strong> (ang. <em>Application Programming Interface<\/em>, czyli interfejs programowania aplikacji) to ustalony zbi\u00f3r regu\u0142, dzi\u0119ki kt\u00f3rym dwa programy mog\u0105 wymienia\u0107 dane i uruchamia\u0107 nawzajem swoje funkcje, nie znaj\u0105c swojej budowy w \u015brodku. Mo\u017cna je por\u00f3wna\u0107 do umowy: API m\u00f3wi, jakie \u017c\u0105dania wolno wys\u0142a\u0107, w jakim formacie, jakie dane s\u0105 wymagane i co druga strona ode\u015ble w odpowiedzi. Dzi\u015b najcz\u0119\u015bciej spotykamy <strong>web API<\/strong> dzia\u0142aj\u0105ce przez protok\u00f3\u0142 HTTP (ten sam, na kt\u00f3rym opieraj\u0105 si\u0119 strony internetowe). Dane przesy\u0142a si\u0119 w nich zwykle w formacie JSON lub XML.<\/p>\n<h2>Jak dzia\u0142a API?<\/h2>\n<p>Wi\u0119kszo\u015b\u0107 API dzia\u0142a w modelu <strong>klient\u2013serwer<\/strong>. Program, kt\u00f3ry o co\u015b prosi (wysy\u0142a <em>\u017c\u0105danie<\/em>, ang. <em>request<\/em>), to klient. System, kt\u00f3ry odpowiada (<em>response<\/em>), to serwer. Klient wysy\u0142a \u017c\u0105danie pod konkretny <code>endpoint<\/code>, czyli adres URL wskazuj\u0105cy dany zas\u00f3b lub operacj\u0119. Serwer przetwarza \u017c\u0105danie i odsy\u0142a odpowied\u017a razem z kodem statusu HTTP, kt\u00f3ry m\u00f3wi, jak posz\u0142o.<\/p>\n<p>Typowe \u017c\u0105danie do web API sk\u0142ada si\u0119 z kilku element\u00f3w:<\/p>\n<ol>\n<li><strong>Metoda HTTP<\/strong> m\u00f3wi\u0105ca, co chcemy zrobi\u0107: <code>GET<\/code> (odczyt), <code>POST<\/code> (utworzenie), <code>PUT<\/code>\/<code>PATCH<\/code> (aktualizacja), <code>DELETE<\/code> (usuni\u0119cie).<\/li>\n<li><strong>Endpoint<\/strong> i parametry wskazuj\u0105ce zas\u00f3b (np. fragment adresu, parametry zapytania).<\/li>\n<li><strong>Nag\u0142\u00f3wki<\/strong>, w tym dane logowania (np. <code>Authorization<\/code>) oraz format tre\u015bci (<code>Content-Type<\/code>).<\/li>\n<li><strong>Tre\u015b\u0107 \u017c\u0105dania<\/strong> (<em>payload<\/em>), zwykle w JSON, gdy co\u015b zapisujemy lub tworzymy.<\/li>\n<li><strong>Odpowied\u017a<\/strong>: kod statusu (np. <code>200<\/code>, <code>201<\/code>, <code>400<\/code>, <code>401<\/code>, <code>404<\/code>, <code>429<\/code>, <code>500<\/code>) oraz dane wynikowe.<\/li>\n<\/ol>\n<h2>Jakie s\u0105 rodzaje API?<\/h2>\n<p>API dzielimy na dwa sposoby: wed\u0142ug tego, <strong>komu s\u0105 udost\u0119pniane<\/strong>, oraz wed\u0142ug <strong>stylu i protoko\u0142u<\/strong> komunikacji.<\/p>\n<h3>Podzia\u0142 wed\u0142ug dost\u0119pno\u015bci<\/h3>\n<ul>\n<li><strong>Prywatne (wewn\u0119trzne)<\/strong> \u2013 u\u017cywane tylko w jednej organizacji, do \u0142\u0105czenia jej w\u0142asnych system\u00f3w.<\/li>\n<li><strong>Partnerskie<\/strong> \u2013 udost\u0119pniane wybranym, zaufanym firmom zewn\u0119trznym na podstawie umowy.<\/li>\n<li><strong>Publiczne (otwarte)<\/strong> \u2013 dost\u0119pne dla zewn\u0119trznych programist\u00f3w, cz\u0119sto po rejestracji i z kluczem API.<\/li>\n<li><strong>Z\u0142o\u017cone (composite)<\/strong> \u2013 \u0142\u0105cz\u0105 kilka wywo\u0142a\u0144 do r\u00f3\u017cnych us\u0142ug w jednym \u017c\u0105daniu.<\/li>\n<\/ul>\n<h3>Podzia\u0142 wed\u0142ug stylu i protoko\u0142u<\/h3>\n<ul>\n<li><strong>REST<\/strong> (<em>Representational State Transfer<\/em>) \u2013 najpopularniejszy styl web API. Jest bezstanowy, czyli serwer nie pami\u0119ta wcze\u015bniejszych \u017c\u0105da\u0144 \u2013 ka\u017cde traktuje osobno. Opiera si\u0119 na zasobach i zwyk\u0142ych metodach HTTP.<\/li>\n<li><strong>SOAP<\/strong> \u2013 starszy protok\u00f3\u0142 oparty na XML i sztywnym schemacie (WSDL). Wci\u0105\u017c spotykany w systemach firmowych i bankowych.<\/li>\n<li><strong>GraphQL<\/strong> \u2013 j\u0119zyk zapyta\u0144, w kt\u00f3rym klient sam wskazuje, jakie dok\u0142adnie pola chce dosta\u0107. Dzi\u0119ki temu nie pobiera ani za du\u017co, ani za ma\u0142o danych.<\/li>\n<li><strong>RPC<\/strong> (np. gRPC, JSON-RPC) \u2013 zdalne wywo\u0142ywanie procedur, czyli uruchamianie funkcji na innym serwerze. gRPC korzysta z HTTP\/2 i Protocol Buffers i dobrze sprawdza si\u0119 w komunikacji mi\u0119dzy mikroserwisami.<\/li>\n<li><strong>WebSocket<\/strong> \u2013 sta\u0142y, dwukierunkowy kana\u0142 do przesy\u0142ania danych i zdarze\u0144 na \u017cywo.<\/li>\n<li><strong>Webhooki<\/strong> \u2013 model odwr\u00f3cony: to serwer sam wysy\u0142a \u017c\u0105danie HTTP pod ustalony adres klienta, gdy co\u015b si\u0119 wydarzy.<\/li>\n<\/ul>\n<h2>Czym jest endpoint i dokumentacja API?<\/h2>\n<p><strong>Endpoint<\/strong> to punkt ko\u0144cowy interfejsu \u2013 adres URL, pod kt\u00f3rym dost\u0119pna jest konkretna operacja lub konkretny zas\u00f3b. Zestaw wszystkich endpoint\u00f3w wraz z opisem metod, parametr\u00f3w, format\u00f3w i kod\u00f3w odpowiedzi tworzy razem kontrakt API.<\/p>\n<p>Ten kontrakt zapisuje si\u0119 w postaci <strong>specyfikacji<\/strong>, najcz\u0119\u015bciej w standardzie <strong>OpenAPI<\/strong> (dawniej Swagger) dla API typu REST. Na podstawie specyfikacji mo\u017cna automatycznie wygenerowa\u0107 dokumentacj\u0119, gotowy kod oraz testy. W GraphQL rol\u0119 kontraktu pe\u0142ni schemat, a w gRPC \u2013 pliki <code>.proto<\/code>.<\/p>\n<h2>Jak zabezpiecza si\u0119 API?<\/h2>\n<p>API to fragment systemu wystawiony na zewn\u0105trz, wi\u0119c jest \u0142atwo dost\u0119pnym celem ataku \u2013 udost\u0119pnia logik\u0119 dzia\u0142ania aplikacji i dane na \u015bwiat. Podstawowe sposoby ochrony to:<\/p>\n<ul>\n<li><strong>Szyfrowanie po\u0142\u0105czenia<\/strong> \u2013 komunikacja tylko przez <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/http-https\">HTTPS<\/a> (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/tls-ssl\">TLS<\/a>) i wy\u0142\u0105czenie przestarza\u0142ych wersji (SSLv3, TLS 1.0\/1.1). Przy us\u0142ugach o podwy\u017cszonym ryzyku stosuje si\u0119 mTLS, czyli wzajemne potwierdzanie to\u017csamo\u015bci certyfikatem po obu stronach.<\/li>\n<li><strong>Uwierzytelnianie<\/strong> \u2013 potwierdzenie, kto wysy\u0142a \u017c\u0105danie: klucze API, tokeny JWT, OAuth 2.0 (kr\u00f3tko wa\u017cne tokeny dost\u0119pu), OpenID Connect, HMAC.<\/li>\n<li><strong>Autoryzacja<\/strong> \u2013 sprawdzanie uprawnie\u0144 przy ka\u017cdym \u017c\u0105daniu, dla ka\u017cdego obiektu i ka\u017cdej operacji, wed\u0142ug zasady minimalnych uprawnie\u0144 (ka\u017cdy ma dost\u0119p tylko do tego, czego naprawd\u0119 potrzebuje).<\/li>\n<li><strong>Sprawdzanie danych wej\u015bciowych<\/strong> \u2013 kontrola typu, d\u0142ugo\u015bci, zakresu i formatu, odrzucanie zbyt du\u017cych \u017c\u0105da\u0144 (kod <code>413<\/code>) oraz u\u017cycie parser\u00f3w odpornych na atak XXE.<\/li>\n<li><strong>Ograniczanie liczby \u017c\u0105da\u0144 (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/rate-limiting\">rate limiting<\/a>)<\/strong> \u2013 limity wywo\u0142a\u0144 i odpowied\u017a <code>429<\/code>, kt\u00f3re chroni\u0105 przed nadu\u017cyciami, masowym odpytywaniem i atakami <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/dos-denial-of-service\">DoS<\/a>.<\/li>\n<li><strong>Higiena odpowiedzi<\/strong> \u2013 og\u00f3lne komunikaty b\u0142\u0119d\u00f3w (bez ujawniania szczeg\u00f3\u0142\u00f3w dzia\u0142ania), nag\u0142\u00f3wki bezpiecze\u0144stwa (<code>Strict-Transport-Security<\/code>, <code>X-Content-Type-Options: nosniff<\/code>) oraz restrykcyjna polityka CORS.<\/li>\n<\/ul>\n<h2>Dlaczego API jest istotne dla bezpiecze\u0144stwa i monitoringu?<\/h2>\n<p>API to dzi\u015b jeden z g\u0142\u00f3wnych cel\u00f3w atak\u00f3w na aplikacje. Lista <strong>OWASP <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/api-security\">API Security<\/a> Top 10<\/strong> wskazuje jako najwi\u0119ksze ryzyko <strong>BOLA<\/strong> (<em>Broken Object Level Authorization<\/em>, czyli b\u0142\u0119dn\u0105 kontrol\u0119 dost\u0119pu do obiekt\u00f3w). Polega ono na tym, \u017ce klient podmienia w \u017c\u0105daniu identyfikator i si\u0119ga po cudze dane, bo serwer nie sprawdza, do kogo dany zas\u00f3b nale\u017cy. Do wa\u017cnych zagro\u017ce\u0144 nale\u017c\u0105 te\u017c b\u0142\u0119dne uwierzytelnianie, ujawnianie w odpowiedzi zbyt wielu danych oraz brak limit\u00f3w zu\u017cycia zasob\u00f3w.<\/p>\n<p>Z punktu widzenia zespo\u0142u bezpiecze\u0144stwa (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/soc-security-operations-center\">SOC<\/a>), system\u00f3w wykrywania zagro\u017ce\u0144 w sieci (<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/ndr-network-detection-and-response\">NDR<\/a>) i monitoringu API jest wa\u017cne na dwa sposoby:<\/p>\n<ul>\n<li><strong>Jako \u017ar\u00f3d\u0142o ryzyka.<\/strong> Ruch API trzeba obserwowa\u0107 pod k\u0105tem nietypowych zachowa\u0144: nag\u0142ego wzrostu liczby b\u0142\u0119d\u00f3w <code>401<\/code>\/<code>403<\/code> (pr\u00f3by obej\u015bcia kontroli dost\u0119pu), kolejnego odpytywania o identyfikatory (sygna\u0142 ataku BOLA), pobierania nietypowo du\u017cej ilo\u015bci danych (mo\u017cliwa kradzie\u017c danych) czy wywo\u0142a\u0144 z nieoczekiwanych adres\u00f3w. Cz\u0119stym punktem wej\u015bcia s\u0105 \u201eshadow API\u201d, czyli zapomniane lub nieudokumentowane endpointy.<\/li>\n<li><strong>Jako \u017ar\u00f3d\u0142o danych i punkt integracji.<\/strong> Systemy monitoruj\u0105ce same udost\u0119pniaj\u0105 i wykorzystuj\u0105 API, \u017ceby pobiera\u0107 alerty, wzbogaca\u0107 zdarzenia o kontekst (np. dane o zasobach czy informacje o zagro\u017ceniach), przekazywa\u0107 dane do system\u00f3w <a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/siem\">SIEM<\/a>\/<a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/soar\">SOAR<\/a> i automatyzowa\u0107 reakcj\u0119 na incydenty. Logi dost\u0119pu do API \u2013 z czasem zdarzenia, adresem IP i to\u017csamo\u015bci\u0105 wywo\u0142uj\u0105cego \u2013 s\u0105 wa\u017cnym materia\u0142em dowodowym przy analizie incydentu.<\/li>\n<\/ul>\n<h2>Dowiedz si\u0119 wi\u0119cej<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/podatnosc-idor-jak-wykryc-atak-na-aplikacje-webowe-przez-analize-ruchu-http\">Podatno\u015b\u0107 IDOR \u2013 jak wykry\u0107 atak na aplikacje webowe przez analiz\u0119 ruchu HTTP<\/a> \u2014 IDOR dotyczy b\u0142\u0119d\u00f3w w API, gdy dost\u0119p do zasob\u00f3w zale\u017cy od manipulacji identyfikatorem w \u017c\u0105daniu.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/rest-api\">REST API<\/a> \u2014 REST API to popularny styl tworzenia interfejs\u00f3w API oparty na zasobach i metodach HTTP.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/integracja-logow-audytu-sycope-z-siem-w-celu-zwiekszenia-zgodnosci-i-monitorowania\">Integracja log\u00f3w audytu Sycope z SIEM w celu zwi\u0119kszenia zgodno\u015bci i monitorowania<\/a> \u2014 API s\u0142u\u017cy do przekazywania log\u00f3w audytu z Sycope do SIEM i automatyzacji integracji.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/arp-spoofing-jak-wykryc-atak-man-in-the-middle-i-zatruwanie-arp-w-sieci-lan\">ARP Spoofing \u2013 jak wykry\u0107 atak Man-in-the-Middle i zatruwanie ARP w sieci LAN<\/a> \u2014 ARP Spoofing nie dotyczy API, lecz mo\u017ce wp\u0142ywa\u0107 na ruch do us\u0142ug API w sieci LAN.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/architektura-zero-trust-rola-widocznosci-sieci-i-mikrosegmentacji-w-bezpieczenstwie\">Architektura Zero Trust \u2013 rola widoczno\u015bci sieci i mikrosegmentacji w bezpiecze\u0144stwie<\/a> \u2014 API w modelu Zero Trust wymaga kontroli dost\u0119pu, uwierzytelniania i sta\u0142ej weryfikacji.<\/li>\n<li><a href=\"https:\/\/www.sycope.com\/pl\/post\/dictionary-item\/application-layer-attack-l7\">Application Layer Attack (L7)<\/a> \u2014 API dzia\u0142a w warstwie aplikacji, wi\u0119c jest cz\u0119stym celem atak\u00f3w L7.<\/li>\n<\/ul>\n","protected":false},"featured_media":0,"template":"","class_list":["post-4727","dictionary-item","type-dictionary-item","status-publish","hentry"],"acf":{"tytul":"API","ikona":"","krotki_opis":"Ustalony zbi\u00f3r regu\u0142, dzi\u0119ki kt\u00f3rym programy wymieniaj\u0105 dane i uruchamiaj\u0105 nawzajem swoje funkcje przez \u017c\u0105dania i odpowiedzi, najcz\u0119\u015bciej w web API opartych na HTTP."},"_links":{"self":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/dictionary-item\/4727","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/dictionary-item"}],"about":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/types\/dictionary-item"}],"wp:attachment":[{"href":"https:\/\/www.sycope.com\/pl\/wp-json\/wp\/v2\/media?parent=4727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}