Verifikácia doplnkov
Na zaistenie bezpečnosti a autenticity komunikácie medzi platformou Upgates a vašim doplnkom využívame digitálne podpisy.
Čo je to digitálny podpis?
Digitálny podpis je spôsob, ako overiť, že dané dáta:
- skutočne pochádzajú od vás,
- nebola cestou nijako upravená,
- sú aktuálne a dôveryhodné.
Dáta podpisujeme privátnym kľúčom a vy si ich môžete skontrolovať verejným kľúčom metódou OPENSSL_ALGO_SHA256.
Kedy a čo sa podpisuje?
Každá dôležitá požiadavka, ktorú posielate na váš doplnok, obsahuje:
- Vlastné údaje (napr. informácie o aktivácii doplnku),
- Kľúč
signature_v2s digitálnym podpisom.
Príklady podpisovaných udalostí:
Doplňujúce informácie
- Z podpisovaných dát je vyňatý
current_admin_language. - Jednotlivé podpisované dáta nájdete u každého endpointu.
- Doporučujeme vždy načítať aktuálne verejný kľúč pri overovaní podpisu a neukladať ho pri sebe pre neskoršie použitie>.
Príklad overenia podpisu v PHP
{} Signature PHP
$data = implode(";",[...]);
$signature = 'a0e0a3e7689bd4c80e4d6ffcccb05235b864e1d0';
$signaturePublicKey = file_get_contents("https://files.upgates.com/addons/signature/api.signature.pub.key");
$verify = openssl_verify($data, base64_decode($signature), $signaturePublicKey, OPENSSL_ALGO_SHA256);
Odporúčania pre vývojárov
- Neukladajte verejný kľúč natrvalo. Pri každej požiadavke ho načítajte z oficiálnej URL.
- Starostlivo dodržiavajte poradie a zoznam podpisovaných položiek – špecifikáciu nájdete pri každého endpointu.
- Validáciu podpisu vykonávajte vždy pred spracovaním požiadavky.