Zabezpečenie Checkoutu
Pravidlá na strane servera, ktoré udržia integráciu Checkoutu v bezpečí, od správy kľúčov po overenie platby pred vybavením objednávky.
Tapaya hostuje polia pre kartu, tokenizáciu, autentifikáciu karty aj samotné zaťaženie karty, takže vaše systémy nikdy nepracujú priamo s údajmi o karte. Na vás zostáva server, ktorý vytvára platby a rozhoduje, kedy je objednávka zaplatená. Tieto pravidlá platia pre hostovaný Checkout aj pre vložené platby.
Ako Tapaya narába s údajmi o držiteľoch kariet a s osobnými údajmi, sa dozviete v časti Ochrana údajov a súkromia.
Uchovávajte kľúče na serveri
- Checkout kľúč obchodníka alebo Secret key organizácie ukladajte iba do konfigurácie na strane servera. Ani jeden nepatrí do kódu v prehliadači, do balíkov mobilných aplikácií ani do systému na správu verzií. Do prehliadača sa dostane iba publishable key a client secret platby.
- Checkout API obchodníka volajte zo svojho serverového prostredia. Tieto požiadavky nespúšťajte v prehliadači zákazníka.
- Checkout kľúč obchodníka má prístup iba k svojmu obchodníkovi. Vlastnému backendu obchodníka odovzdajte tento kľúč, nikdy nie Secret key vašej organizácie.
- Secret key organizácie má oprávnenia v rámci celej organizácie. V režime platformy ho posielajte s
X-Tapaya-Merchant-Tokenv každej požiadavke; API overí, že obchodník patrí do organizácie daného kľúča. Pozrite si autentifikáciu Checkoutu. - Kľúče obchodníka sa zobrazia iba raz a ukladajú sa len ako hash. Kľúč, pri ktorom máte podozrenie na únik, zneplatnite, ale až potom, ako vytvoríte jeho náhradu.
Spravujte objednávku na svojom serveri
- Celkovú sumu objednávky počítajte na svojom serveri a objednávku uložte skôr, ako vytvoríte reláciu alebo pokus o platbu.
- Sumy, menu a ID objednávok čítajte z uloženej snímky objednávky. Neprijímajte náhradné hodnoty odoslané prehliadačom.
- Pri vložených platbách naviažte svoje endpointy
prepareasubmitna autentifikovaný checkout alebo na podpísanú HTTP-only cookie a pri požiadavkách, ktoré menia údaje, overujte ich origin.
Pred vybavením objednávky overte platbu
Presmerovanie prehliadača, návšteva vašej URL úspechu, parametre dopytu, návratové cookies a správy z prehliadača sú navigačné údaje. Žiadne z nich platbu nedokazuje.
- Načítajte reláciu zo svojho servera a porovnajte jej referenciu objednávky, sumu, menu a stav platby s uloženou objednávkou.
- Objednávku vybavte iba vtedy, keď táto kontrola potvrdí
paymentStatus: successful. Samotná odpoveď HTTP 200 platbu nedokazuje. - Vybavenie objednávky zaznamenávajte atomicky, aby opakované návraty alebo kontroly stavu nemohli vybaviť tú istú objednávku dvakrát.
- Ak je relácia stále v stave
unpaidalebo sa ju nepodarí načítať, ponechajte si ID relácie a kontrolu zopakujte s obmedzeným počtom pokusov. Nevytvárajte ďalšiu reláciu len preto, že výsledok tej prvej je neznámy: nová relácia pre objednávku nahradí tú starú. Webhooky zatiaľ nie sú k dispozícii, preto stav odsúhlasujte opakovaným dopytovaním (polling).
Opakujte požiadavky bezpečne
- Pred vytvorením relácie uložte s objednávkou jedinečný idempotency key. Ak pri požiadavke vyprší časový limit alebo sa jej odpoveď stratí, zopakujte ju s rovnakým kľúčom a nezmeneným telom.
- Pre neistý výsledok negenerujte nový kľúč. Pravidlá opakovania nájdete v časti Idempotencia a chyby.
Obmedzte originy pre presmerovanie
- Do Allowed websites v nastaveniach Checkoutu pridávajte iba originy svojich vlastných obchodov.
- Pre nasadené obchody používajte HTTPS. Prepísanie
successUrlacancelUrlpre jednotlivé relácie musí aj tak zodpovedať nakonfigurovanému originu.
Nahlásenie bezpečnostného problému
Ak máte podozrenie na zraniteľnosť alebo bezpečnostný incident, kontaktujte bezpečnostný tím podľa pokynov v časti Kontakty.
Chýba vám niečo na tejto stránke?Navrhnite funkciu. Pripojíme túto stránku, aby tím videl súvislosti.