Tapaya
Online platbyZabezpečenie CheckoutuZabezpečenie Checkoutu

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-Token v 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 prepare a submit na 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 unpaid alebo 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 successUrl a cancelUrl pre 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.