Przejdź do treści
Ostatnia aktualizacja

Bezpieczeństwo integracji to absolutny priorytet. Aby mieć 100% pewności, że otrzymane powiadomienie IPN faktycznie pochodzi od systemu SimPay (a nie od złośliwego użytkownika próbującego wyłudzić opłacenie zamówienia), zdecydowanie zalecamy wdrożenie walidacji adresów IP.

Wdrożenie tego mechanizmu całkowicie uniemożliwia ataki typu IPN Spoofing (podszywanie się pod nasze serwery).


Jak poprawnie weryfikować nadawcę?

Nasza infrastruktura sieciowa jest dynamiczna, co oznacza, że pula naszych adresów IP używanych do wysyłki webhooków może ulegać zmianom. Z tego powodu proces autoryzacji każdego powiadomienia powinien wyglądać następująco:

  1. W momencie, gdy Twój serwer odbiera żądanie POST (Webhook), odczytujesz adres IP nadawcy z nagłówka połączenia.
  2. Następnie Twój system wykonuje szybkie zapytanie GET do naszego publicznego endpointu: https://api.simpay.pl/ip
  3. Nasze API zwraca aktualną, autoryzowaną listę adresów IP.
  4. Porównujesz IP nadawcy webhooka z otrzymaną listą. Jeśli adres znajduje się na liście – powiadomienie jest autentyczne i możesz bezpiecznie zmienić status zamówienia.

Przykład odpowiedzi z endpointu /ip

Wysyłając zapytanie pod adres https://api.simpay.pl/ip, otrzymasz odpowiedź w formacie JSON zawierającą tablicę z naszymi aktualnymi adresami IPv4.

{
  "success": true,
  "data": [ // tablica adresów IP
    "X.X.X.X",
    "Y.Y.Y.Y"
  ]
}

Nie cache-uj wyników!

Absolutnie odradzamy cachowania (zapisywania w pamięci podręcznej) listy adresów IP pobranej z tego endpointu!

Musisz odpytywać adres https://api.simpay.pl/ip w czasie rzeczywistym, przy każdym pojedynczym powiadomieniu IPN, które do Ciebie trafia.

Dlaczego to takie ważne? Lista naszych adresów IP może się zmienić w dowolnej chwili (np. w związku z pracami konserwacyjnymi, aktualizacjami bezpieczeństwa czy skalowaniem serwerów). Jeśli zapiszesz te adresy na "twardo" w kodzie (tzw. hardcoding) lub ustawisz dla nich długi czas życia w cache'u (TTL), to w momencie zmiany IP przez SimPay:

  • Twój sklep zablokuje prawdziwe powiadomienia o opłaceniu zamówienia.
  • System nie wyda klientom towarów / usług.
  • Zaczną się mnożyć skargi i zapytania do supportu.

Oszczędź sobie problemów w przyszłości i zawsze sprawdzaj adresy dynamicznie na bieżąco!