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.
- 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
- 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:
merchantje identifikátor prepojenia obchodu na API Comgate,secretje 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.