Přeskočit na hlavní obsah
BilgeQor

Služby pro aplikace a produkty

Bezpečné integrace API: Stripe, Shopify, Salesforce a webhooky

4 min čtení

Integrace s platformami, jako jsou Stripe, Shopify a Salesforce, jsou často místem, kudy mezi systémy proudí data a peníze klíčové pro podnikání. Zároveň jsou místem, kde jsou zkratky běžné: klíč API vložený do front-endového kódu, koncový bod webhooku, který přijme jakýkoli požadavek, nebo synchronizační úloha, která tiše selhává. Každý poskytovatel zveřejňuje podrobné bezpečnostní pokyny, ale za integrační kód, který píše váš tým, odpovídáte stále vy. Tento průvodce popisuje praktická opatření, díky nimž jsou integrace bezpečnější a spolehlivější.

Co to je?

Bezpečná integrace chrání tři věci: přístupové údaje, které udělují přístup, data proudící mezi systémy a integritu obchodních událostí, které spouštějí akce. Přístupové údaje zahrnují klíče API, tokeny OAuth a klientské tajné klíče; měly by být uloženy pouze na serveru, ve správci tajných údajů nebo v chráněné konfiguraci prostředí, s nejužšími oprávněními, která integrace potřebuje. Data při přenosu používají HTTPS a uložená data se omezují na to, co firma skutečně potřebuje uchovávat. Integrita událostí závisí na ověření, že příchozí webhooky skutečně pocházejí od poskytovatele. Stripe například podepisuje události webhooků podpisovým tajemstvím a poskytuje hlavičku s podpisem, kterou by měl váš koncový bod ověřit; Shopify podepisuje webhooky hlavičkou HMAC; integrace se Salesforce obvykle spoléhají na OAuth prostřednictvím connected app nebo jejího novějšího ekvivalentu, external client app, s vymezenými oprávněními. Záleží i na spolehlivosti. Webhooky mohou dorazit pozdě, vícekrát nebo v nesprávném pořadí, proto by obslužné rutiny měly být idempotentní a odchozí volání by měla zvládat limity počtu požadavků a opakované pokusy bez duplikace plateb, objednávek nebo záznamů. Stripe z tohoto důvodu podporuje klíče idempotence.

Pro koho to je?

Tento průvodce je určen pro:

  • Týmy, které propojují platby, předplatné nebo pokladní procesy s vlastními systémy
  • E-commerce firmy, které synchronizují objednávky, zásoby nebo zákazníky mezi Shopify a dalšími platformami
  • Firmy, které integrují data CRM ze Salesforce s interními nástroji nebo zákaznickými portály
  • Vlastníky produktů, kteří kontrolují integrační práci dodanou agenturou nebo freelancerem

Co to pomůže objasnit

Projití jednotlivých opatření pomáhá ujasnit:

  • Kde jsou přístupové údaje uloženy, kdo k nim má přístup a jak se obměňují
  • Zda koncové body webhooků ověřují podpisy a odmítají nepodepsané nebo znovu přehrané požadavky
  • Jak se řeší selhání, opakované pokusy a duplicity, aniž by došlo k poškození dat
  • Která data se mezi systémy kopírují a zda je to u všech nutné

Co je zahrnuto

  • Tajné klíče API uchovávejte pouze na straně serveru; v klientech používejte publikovatelné nebo veřejné klíče, pokud je poskytovatel podporuje
  • Tajné údaje ukládejte ve správci tajných údajů nebo v chráněné konfiguraci, nikdy v repozitářích zdrojového kódu
  • Žádejte o nejužší rozsahy a oprávnění; pro každé prostředí používejte samostatné přístupové údaje
  • Přístupové údaje obměňujte podle plánu a okamžitě po změnách v personálu nebo u dodavatelů
  • Ověřujte podpisy webhooků zdokumentovanou metodou poskytovatele a požadavky, které ověřením neprojdou, odmítejte
  • Kontrolujte časová razítka událostí, abyste snížili riziko přehrání, a zaznamenávejte ID zpracovaných událostí
  • Navrhněte obslužné rutiny jako idempotentní, aby opakované události nevytvářely duplicitní akce
  • U odchozích operací vytváření používejte klíče idempotence nebo obdobné pojistky, kde jsou podporovány
  • Limity počtu požadavků řešte pomocí backoffu a práci řaďte do fronty, místo abyste ji zahazovali
  • Logujte integrační události bez logování tajných údajů, údajů o kartách nebo zbytečných osobních údajů
  • Upozorněte odpovědnou osobu, když synchronizační úlohy nebo webhooky opakovaně selhávají
  • Před přechodem na produkční přístupové údaje testujte v sandboxu nebo testovacím režimu poskytovatele

Co není součástí

  • Ověření souladu s PCI DSS nebo schválení zpracovatelem plateb
  • Řešení podvodů nebo správa chargebacků
  • Tvrzení, že dodržování těchto opatření zabrání každému incidentu v integraci
  • Provoz platforem třetích stran, který zůstává odpovědností poskytovatelů

Kdy si ji vybrat

Tento kontrolní seznam použijte při návrhu nové integrace, před spuštěním do provozu, při přebírání integračního kódu od jiného týmu a po každém incidentu zahrnujícím duplicitní platby, chybějící objednávky nebo neočekávaný přístup k datům. Je zvláště důležitý, když integrace může spouštět finanční akce, jako jsou platby, vrácení peněz nebo změny předplatného, nebo může odhalit záznamy zákazníků.

Náš přístup

Ke každé integraci přistupujte jako k malému produktu s vlastním vlastníkem, dokumentací a monitorováním. Začněte soupisem integrací, přístupových údajů a koncových bodů webhooků; mnoho organizací objeví klíče, o jejichž vytvoření nikdo neví. Poté uplatněte výše uvedená opatření v pořadí podle rizika: nejprve tajné údaje a ověřování podpisů, poté idempotenci a zpracování selhání a nakonec logování a upozorňování. Naše služba Secure Backend & API Engineering navrhuje a dodává backendovou a integrační práci se smlouvou API, shrnutím testů a provozní příručkou, přičemž produkční přístup a zákaznická data se používají pouze na základě výslovného písemného oprávnění. Pokud jde o platební a předplatitelskou logiku, může služba Subscription & Payment Infrastructure Security samostatně prověřit dohodnuté platební cesty a cesty k oprávněním. Pokud chcete nezávislou kontrolu stávajících integračních koncových bodů, může je do rozsahu zahrnout bezpečnostní revize aplikace.

Secure Backend & API Engineering

Zobrazit stránku služby Secure Backend & API Engineering

Často kladené otázky

Související články

Začít

Plánujete nebo kontrolujete integraci klíčovou pro podnikání?

Sdělte nám, o které platformy jde, jaká data a události mezi nimi proudí a jaké problémy jste zaznamenali. Navrhneme písemný rozsah.

Vyžádat písemný rozsah