IP Allowlist
Wszystkie notyfikacje (webhooki) wychodzące z systemu Paymentic pochodzą z określonej puli adresów IP. Ograniczenie ruchu przychodzącego na Twój endpoint webhooka tylko do tej puli — na poziomie firewalla, WAF-a, load balancera albo security group w chmurze — to najprostsza i najtańsza warstwa obrony. Odfiltrowuje cały szum internetu, zanim dotrze on do logiki weryfikacji podpisu.
Dlaczego warto ją wdrożyć
- Eliminuje niemal cały ruch "scanerów" internetowych szukających podatnych endpointów, zanim obciąży on Twoją aplikację.
- Ogranicza powierzchnię ataku na wypadek błędu w implementacji weryfikacji podpisu — jeśli ktoś znajdzie lukę w HMAC walidacji, i tak nie dotrze na endpoint, bo zostanie odfiltrowany na warstwie sieciowej.
- Nie wymaga zmian w kodzie aplikacji — konfiguruje się raz, na poziomie infrastruktury.
Allowlista IP nie zastępuje weryfikacji podpisu webhooka — adres IP można sfałszować, a w niektórych architekturach (proxy, CDN, chmurowe load balancery) IP źródłowe może być maskowane. Traktuj ją jako warstwę komplementarną do walidacji podpisu HMAC.
Adresy IP, z których wychodzą webhooki Paymentic
Środowisko produkcyjne
51.89.111.246/32
51.38.19.35/32
51.38.159.210/32
57.129.98.242/32
51.210.226.88/32
Środowisko sandbox
141.95.101.153/32
Lista adresów IP jest wersjonowana. Zmiany są komunikowane z co najmniej 30-dniowym wyprzedzeniem kanałami administracyjnymi, aby dać czas na aktualizację reguł firewalla po Twojej stronie. Jeśli prowadzisz infrastrukturę o rygorystycznym reżimie zmian, zasubskrybuj ten kanał powiadomień w panelu merchanta.
Jak skonfigurować
nginx
location /webhook {
allow 57.129.98.242/32; # Paymentic production
allow 51.210.226.88/32; # Paymentic production
deny all;
proxy_pass http://localhost:8080;
}
AWS Security Group / ALB
Dla load balancera publicznego dodaj regułę ingress na port 443 z Source ustawionym na CIDR-y Paymentic. Dla aplikacji za ALB/CloudFront dodatkowo sprawdzaj X-Forwarded-For po stronie aplikacji i/lub użyj reguły WAF-a.
Cloudflare / inne CDN
Skonfiguruj regułę WAF: (ip.src ne X.X.X.X and ip.src ne Y.Y.Y.Y and http.request.uri.path eq "/webhook") → Block. Pamiętaj, że w konfiguracji za CDN-em musisz dodatkowo zabezpieczyć origin, żeby przyjmował ruch wyłącznie od CDN-u — inaczej allowlista na warstwie CDN jest bez efektu.