Přeskočit na hlavní obsah

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.
  • 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
Tip

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.