Skip to main content

Zabezpečenie

API Komunikácia​

Komunikácia medzi e-shopom a Comgate API prebieha tromi spôsobmi:

  • Eshop🠖Comgate
    • Server2Server - serverová časť e-shopového riešenia sa pripája k serverovej časti platobnej brány a volá napríklad metódy na založenie platby, získanie stavu platby na pozadí a ďalšie. Tieto volania možno jednoducho identifikovať v názve endpointu, kde cesta začína /1.0/ alebo /2.0/. Requesty na toto API je nevyhnutné vykonávať zo servera práve preto, aby nedošlo k prezradeniu prístupového kľúča (secret).
    • Client2Server - klientská časť e-shopového riešenia (mobilná aplikácia) sa ako klient pripája k serverovej časti platobnej brány a vykonáva priame spracovanie platby. Príkladom môžu byť volania na endpoint /checkout/, kde dochádza napríklad k spracovaniu platieb cez natívnu implementáciu Apple Pay a Google Pay.
  • Comgate🠖Eshop - serverová časť platobnej brány sa pripája k serverovej časti e-shopového riešenia a volá metódu na odovzdanie výsledku platby na pozadí (PUSH notifikácie).
  • Presmerovanie (redirect) - stránka načítaná v prehliadači platiteľa je presmerovaná z e-shopu metódou GET na platobnú bránu a následne z platobnej brány späť do e-shopu (tiež metódou GET).

Vo všetkých prípadoch je nevyhnutné použitie šifrovaného protokolu HTTPS. Platobná brána podporuje iba bezpečné nastavenie TLS/SSL protokolu s nasledujúcimi povolenými šiframi: https://github.com/cloudflare/sslconfig/blob/master/conf

Autentizácia na API​

V prípade komunikácie Server2Server s API Comgate je nutné vykonať autentizáciu pomocou hodnôt merchant a secret:

  • merchant je identifikátor prepojenia obchodu na API Comgate,
  • secret je tajné heslo, ktoré je unikátne pre každé prepojenie.

Tieto hodnoty sú automaticky generované a sú dostupné v klientskom portáli v sekcii:

Integrácia 🠖 Nastavenie obchodov 🠖 názov obchodu 🠖 záložka Prepojenie obchodu 🠖 detail prepojenia

Každý obchod môže mať viac prepojení, každé s inými hodnotami merchant a secret.

POST protokol​

Ide o volania začínajúce /1.0/.

Komunikácia je zabezpečená pomocou hodnôt merchant a secret, ktoré sú na server zasielané ako dáta odoslaného formulára prostredníctvom application/x-www-form-urlencoded.

REST protokol​

Pre REST prebieha autentizácia prostredníctvom pridanej hlavičky Authorization.

Hlavička je v tvare: "Authorization: Basic " + base64_encode("merchant:secret").

Napríklad: "Authorization: Basic bWVyY2hhbnQ6c2VjcmV0".

Whitelist​

Povolené IP adresy je možné zapisovať vo formáte IPv4 alebo IPv4/MASKA. Je povolená vždy jedna hodnota na riadok. Za samotnou definíciou (na koniec riadku) je možné vložiť komentár. Ten je od samotnej hodnoty oddelený aspoň jednou medzerou.

V prípade, že nedokážete určiť rozsah IP adries vášho systému, je možné zadať hodnotu 0.0.0.0/0, čím dôjde k povoleniu adries celého sveta. Toto nastavenie je z hľadiska bezpečnosti rizikové a odporúčame sa mu vyhnúť, ak to nie je nevyhnutne nutné. Nastavenie týchto parametrov je možné vykonať v prostredí klientskeho portálu.

Príklad:​

8.8.8.8 IP Google
1.1.1.1 IP cloudflare
8.8.0.0/16 Subnet Google
1.1.1.0/24 Subnet Cloudflare
0.0.0.0/0 Celý internet

Comgate IP rozsahy​

Zakladanie platieb je predradené službe CloudFlare. Zoznam povolených IP adries CloudFlare nájdete tu: https://www.cloudflare.com/ips-v4

Zoznam IP adries systému Comgate je zverejnený na http://payments.comgate.cz/ips-v4. Tento rozsah sa používa iba na odovzdanie výsledku platby na pozadí Push notifikácie. Pokiaľ IP whitelist používate, stačí IP adresy z URL načítať napr. 1x denne, nie je to nutné s každou požiadavkou.

Content Security Policy (CSP)​

Ak na svojom webe používate hlavičku Content-Security-Policy a chcete zobraziť platobnú bránu Comgate akýmkoľvek spôsobom v iframe na vašej stránke, je nutné do hlavičky CSP pridať špeciálnu direktívu frame-src *;. Táto špecifikuje platné zdroje pre načítanie vnorených kontextov pomocou prvkov ako sú <frame> a <iframe>.

Pri direktíve frame-src nestačí definovať len domény platobnej brány Comgate. Vždy musia byť explicitne povolené všetky externé kontexty, t.j. *.

Dôvodom pre toto nastavenie je:

  • nutnosť zobraziť stránku s 3D Secure pri platbe kartou za účasti plátca,
  • presmerovanie do webovej aplikácie u niektorých poskytovateľov platobných metód.

Príklad hlavičky CSP:​

Content-Security-Policy:
default-src 'self';
script-src 'self';
style-src 'self';
img-src 'self';
connect-src 'self';
form-action 'self';
frame-src *;
frame-ancestors 'none';
upgrade-insecure-requests

Viac informácií o Content Security Policy nájdete na stránkach MDN web docs.

Pre korektné zostavenie hlavičky Content-Security-Policy odporúčame použiť napríklad nástroj Report URI.