Przejdź do głównej treści
BilgeQor

Usługi aplikacji i produktów

Bezpieczne integracje API: Stripe, Shopify, Salesforce, webhooki

4 min odczyt

Integracje z platformami takimi jak Stripe, Shopify i Salesforce to często miejsca, w których między systemami przepływają krytyczne dla biznesu dane i pieniądze. To także miejsca, w których często idzie się na skróty: klucz API wklejony do kodu front-endu, endpoint webhooka przyjmujący dowolne żądanie albo zadanie synchronizacji, które po cichu kończy się błędem. Każdy dostawca publikuje szczegółowe wytyczne bezpieczeństwa, ale kod integracji napisany przez Państwa zespół nadal pozostaje Państwa odpowiedzialnością. Ten przewodnik omawia praktyczne zabezpieczenia, które czynią integracje bezpieczniejszymi i bardziej niezawodnymi.

Co to jest

Bezpieczna integracja chroni trzy rzeczy: dane dostępowe, które zapewniają dostęp, dane przepływające między systemami oraz integralność zdarzeń biznesowych wywołujących działania. Dane dostępowe obejmują klucze API, tokeny OAuth i sekrety klienta; powinny znajdować się wyłącznie na serwerze, w menedżerze sekretów lub chronionej konfiguracji środowiska, z najwęższymi uprawnieniami potrzebnymi integracji. Dane w tranzycie są przesyłane przez HTTPS, a dane w spoczynku ograniczone do tego, co firma rzeczywiście musi przechowywać. Integralność zdarzeń zależy od weryfikacji, czy przychodzące webhooki rzeczywiście pochodzą od dostawcy. Stripe, na przykład, podpisuje zdarzenia webhook sekretem podpisującym i udostępnia nagłówek z podpisem, który endpoint powinien weryfikować; Shopify podpisuje webhooki nagłówkiem HMAC; integracje z Salesforce zwykle opierają się na OAuth za pośrednictwem aplikacji połączonej (connected app) lub jej nowszego odpowiednika, zewnętrznej aplikacji klienckiej (external client app), z ograniczonymi uprawnieniami. Liczy się też niezawodność. Webhooki mogą docierać z opóźnieniem, więcej niż raz lub w niewłaściwej kolejności, dlatego procedury obsługi powinny być idempotentne, a wywołania wychodzące powinny obsługiwać limity żądań i ponowienia bez dublowania obciążeń, zamówień czy rekordów. Z tego powodu Stripe obsługuje klucze idempotencji.

Dla kogo

Ten przewodnik jest skierowany do:

  • Zespołów łączących płatności, subskrypcje lub procesy finalizacji zakupu z własnymi systemami
  • Firm e-commerce synchronizujących zamówienia, stany magazynowe lub klientów między Shopify a innymi platformami
  • Firm integrujących dane CRM z Salesforce z narzędziami wewnętrznymi lub portalami klientów
  • Właścicieli produktów przeglądających prace integracyjne dostarczone przez agencję lub freelancera

Co pomaga wyjaśnić

Przejście przez zabezpieczenia pomaga wyjaśnić:

  • Gdzie przechowywane są dane dostępowe, kto ma do nich dostęp i jak są rotowane
  • Czy endpointy webhooków weryfikują podpisy i odrzucają niepodpisane lub powtórzone żądania
  • Jak obsługiwane są błędy, ponowienia i duplikaty bez naruszania integralności danych
  • Jakie dane są kopiowane między systemami i czy wszystkie są potrzebne

Co jest zawarte

  • Przechowywać tajne klucze API wyłącznie po stronie serwera; w klientach używać kluczy publikowalnych lub publicznych, jeśli dostawca je obsługuje
  • Przechowywać sekrety w menedżerze sekretów lub chronionej konfiguracji, nigdy w repozytoriach kodu źródłowego
  • Wnioskować o najwęższe zakresy i uprawnienia; używać oddzielnych danych dostępowych dla każdego środowiska
  • Rotować dane dostępowe według harmonogramu oraz niezwłocznie po zmianach personelu lub dostawców
  • Weryfikować podpisy webhooków metodą udokumentowaną przez dostawcę i odrzucać żądania, które nie przejdą weryfikacji
  • Sprawdzać znaczniki czasu zdarzeń, aby ograniczyć ryzyko powtórzenia (replay), i zapisywać identyfikatory przetworzonych zdarzeń
  • Zapewnić idempotentność procedur obsługi, aby powtórzone zdarzenia nie tworzyły zdublowanych działań
  • Stosować klucze idempotencji lub równoważne zabezpieczenia przy wychodzących operacjach tworzenia, jeśli są obsługiwane
  • Obsługiwać limity żądań z mechanizmem wycofania (backoff) i kolejkować pracę zamiast ją porzucać
  • Rejestrować zdarzenia integracji bez zapisywania sekretów, danych kart ani zbędnych danych osobowych
  • Powiadamiać wskazaną osobę, gdy zadania synchronizacji lub webhooki wielokrotnie kończą się błędem
  • Testować w trybach sandbox lub testowych dostawcy przed przełączeniem na produkcyjne dane dostępowe

Co nie jest uwzględnione

  • Walidacji zgodności z PCI DSS ani zatwierdzenia przez operatora płatności
  • Działań przeciwdziałających oszustwom ani zarządzania obciążeniami zwrotnymi (chargeback)
  • Twierdzenia, że stosowanie tych zabezpieczeń zapobiega każdemu incydentowi integracji
  • Obsługi platform stron trzecich, która pozostaje odpowiedzialnością dostawców

Kiedy to wybrać

Z tej listy kontrolnej warto korzystać przy projektowaniu nowej integracji, przed uruchomieniem produkcyjnym, przy przejmowaniu kodu integracji od innego zespołu oraz po każdym incydencie związanym ze zdublowanymi płatnościami, brakującymi zamówieniami lub nieoczekiwanym dostępem do danych. Jest to szczególnie ważne, gdy integracja może wywoływać operacje finansowe, takie jak obciążenia, zwroty lub zmiany subskrypcji, albo może ujawniać rekordy klientów.

Nasze podejście

Każdą integrację warto traktować jak mały produkt z własnym właścicielem, dokumentacją i monitorowaniem. Należy zacząć od spisu integracji, danych dostępowych i endpointów webhooków; wiele organizacji odkrywa klucze, których utworzenia nikt nie pamięta. Następnie należy wdrożyć powyższe zabezpieczenia w kolejności wynikającej z ryzyka: najpierw sekrety i weryfikacja podpisów, potem idempotencja i obsługa błędów, a następnie rejestrowanie zdarzeń i alertowanie. Nasza usługa Secure Backend & API Engineering obejmuje projektowanie i realizację prac backendowych i integracyjnych wraz z kontraktem API, podsumowaniem testów i podręcznikiem operacyjnym (runbook), przy czym dostęp produkcyjny i dane klientów są wykorzystywane wyłącznie na podstawie wyraźnej pisemnej autoryzacji. Jeśli w grę wchodzi logika płatności i subskrypcji, usługa Subscription & Payment Infrastructure Security może osobno przeanalizować uzgodnione ścieżki płatności i uprawnień. Jeśli potrzebują Państwo niezależnej kontroli istniejących endpointów integracji, mogą one zostać objęte zakresem przeglądu bezpieczeństwa aplikacji.

Secure Backend & API Engineering

Zobacz stronę usługi Secure Backend & API Engineering

Często zadawane pytania

Artykuły pokrewne

Zacznij

Planują Państwo lub przeglądają integrację krytyczną dla biznesu?

Proszę wskazać platformy, dane i zdarzenia przepływające między nimi oraz zaobserwowane problemy. Zaproponujemy pisemny zakres.

Poproś o pisemny zakres