Zabezpečení
API Komunikace
Komunikace mezi e-shopem a Comgate API probíhá třemi způsoby:
- Eshop🠖Comgate
- Server2Server - serverová část e-shopového řešení se připojuje k serverové části platební brány a volá například metody pro založení platby, získání stavu platby na pozadí a další. Tato volání je možné jednoduše identifikovat v názvu endpointu, kde začátek cesty začíná
/1.0/
nebo/2.0/
. Requesty na toto API je nezbytné provádět ze serveru právě proto, aby nedošlo k prozrazení přístupového klíče (secret
). - Client2Server - klientská část e-shopového řešení (mobilní aplikace) se jako klient připojuje k serverové části platební brány a provádí přímé zpracování platby. Příkalem mohou být volání na endpoint
/checkout/
, kde dochází například ke zpracování plateb přes nativní implementaci Apple Pay a Goolge Pay.
- Server2Server - serverová část e-shopového řešení se připojuje k serverové části platební brány a volá například metody pro založení platby, získání stavu platby na pozadí a další. Tato volání je možné jednoduše identifikovat v názvu endpointu, kde začátek cesty začíná
- Comgate🠖Eshop - serverová část platební brány se připojuje k serverové části e-shopového řešení a volá metodu pro předání výsledku platby na pozadí (PUSH notifikace).
- Přesměrování (redirect) - stránka načetná v prohlížeči plátce je přesměrována z e-shopu metodou GET na platební bránu a následně z platební brány zpět do e-shopu (též metodou GET).
Ve všech případech je nezbytné použití šifrovaného protokolu HTTPS. Platební brána podporuje pouze bezpečné nastavení TLS/SSL protokolu s následujícími povolenými šiframi: https://github.com/cloudflare/sslconfig/blob/master/conf
Autentizace na API
V případě komunikace Server2Server s API Comgate je nutné provést autentizaci pomocí hodnot merchant
a secret
:
merchant
je identifikátor propojení obchodu na API Comgate,secret
je tajné heslo, které je unikátní pro každé propojení.
Tyto hodnoty jsou automaticky generovány a jsou dostupné v klientském portálu v sekci:
Integrace 🠖 Nastavení obchodů 🠖 název obchodu 🠖 záložka Propojení obchodu 🠖 detail propojení
Každý obchodu může mít více propojení, každé s jinými hodnotami merchant a secret.
POST protokol
Jde o volán í začínající /1.0/
.
Komunikace je zabezpečena pomocí hodnot merchant
a secret
, které jsou na server zasílány jako data odeslaného formuláře prostřednictím application/x-www-form-urlencoded
.
REST protokol
Pro REST probíha autentizace prostřednictvím přidané hlavičky Authorization.
Hlavička je ve tvaru: "Authorization: Basic " + base64_encode("merchant:secret")
.
Například: "Authorization: Basic bWVyY2hhbnQ6c2VjcmV0"
.
Whitelist
Povolené IP adresy je možné zapisovat ve fromátu IPv4
nebo IPv4/MASKA
. Je povolena vždy jedna hodnota na řádek. Za samotnou definici (na konec řádku) je možné vložit komentář. Ten je od samotné hodnoty oddělen alespoň jednou mezerou.
V případě, že nedokážete určit rozsah IP adres vašeho systému, je možné zadat hodnotu 0.0.0.0/0
, čímž dojde k povolení adres celého světa. Toto nastavení je z hlediska bezpečnosti rizikové a doporučujeme se mu vyhnout, pokud to není nezbytně nutné.
Nastavení těchto parametrů je možné provést v prostředí klientského portálu.
Příklad whitelistu:
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
Z bezpečnostních důvodů nedoporučujeme používat masku 0.0.0.0/0
.
Comgate IP rozsahy
Zakládaní plateb je předřazena služba Cloudflare. Seznam povolených IP adres Cloudflare naleznete zde: https://www.cloudflare.com/ips-v4
Rozsah IP adres používaný systémem Comgate je definován jako 89.185.236.55/32
. Tento rozsah se používá pouze pro předání výsledku platby na pozadí.
Content Security Policy (CSP)
Pokud na vašem webu používáte hlavičku Content-Security-Policy
a chcete zobrazovat platební bránu Comgate jakýmkoliv způsobem v iframe na vaší stránce, je nutné přidat do hlavičky CSP speciální direktivu frame-src *;
. Ta specifikuje platné zdroje pro načítání vnořených kontextů pomocí prvků jako jsou <frame>
a <iframe>
.
U direktivy frame-src
nestačí definovat pouze domény platební brány Gomgate. Vždy musí být explicitně povoleny všechny externí kontexty, tj. *.
Důvodem pro toto nastavení je:
- nutnost zobrazit stránku s 3D Secure za účati plátce při platbě kartou,
- přesměrování do webové aplikace u některých poskytovatelů platebních metod.
Pří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
Více informací o Content Security Policy naleznete na stránkách MDN web docs.
Pro korektní sestavení hlavičky Content-Security-Policy doporučujeme použít například nástroj Report URI.