NowośćProgram BackBusiness: bezpłatna strona dla nowej firmy

Backend sklepu poza internetem: izolacja platformy

Aktualizacja: 9 min czytaniaAutor: zespół devBACK

Jak ukryć platformę sklepu i odciąć zaplecze od internetu: prywatna sieć, warstwa BFF, dostęp przez VPN, usuwanie odcisków platformy i test weryfikujący.

Gdy otwierasz większość sklepów internetowych, wystarczy kilka sekund, aby wiedzieć, na czym działają. Charakterystyczne ścieżki plików, nazwy katalogów, nagłówki i fragmenty kodu zdradzają WooCommerce, PrestaShop czy Magento. Dla botów to informacja bezcenna: wiedzą, jakich luk szukać, jakich adresów panelu próbować i jaką wersję wtyczki atakować.

W tym wpisie (część serii Headless commerce) pokazujemy kompletnie, jak zaprojektować sklep, w którym platforma zaplecza jest głęboko ukryta, a publicznie widoczny jest wyłącznie nowoczesny front. Jest długo — bo diabeł tkwi w szczegółach.

Jak naprawdę wyglądają ataki na sklepy

Zanim przejdziemy do rozwiązań, warto zrozumieć, z czym mamy do czynienia. Większość włamań do sklepów to nie spektakularne ataki na konkretną firmę, tylko masowe, zautomatyzowane skanowanie:

  1. Boty odpytują miliony adresów, szukając znanych śladów platform (np. pliku w katalogu wtyczki albo strony logowania).
  2. Gdy znajdą trop, sprawdzają, czy wersja platformy lub wtyczki ma znaną lukę.
  3. Jeśli tak — próbują ją wykorzystać automatycznie, często w ciągu godzin od publikacji informacji o luce.
  4. Inne boty próbują zgadywać hasła do znalezionych paneli administracyjnych (tzw. credential stuffing i brute force).

W takim modelu widoczność platformy jest pierwszym krokiem ataku. Jeśli bot nie rozpozna, że masz WooCommerce, PrestaShop czy Magento, a panel administracyjny nie istnieje pod żadnym publicznym adresem, cały łańcuch zatrzymuje się na początku. To nie zastępuje aktualizacji, ale radykalnie zmniejsza liczbę prób, na które trzeba być gotowym.

Co wystawia klasyczny sklep na świat

W typowym sklepie PHP publicznie dostępne są cztery grupy elementów.

1. Panel administracyjny

  • WordPress/WooCommerce: wp-login.php i /wp-admin/,
  • PrestaShop: katalog administracyjny (jego nazwa bywa losowa, ale łatwo ją wykryć),
  • Magento: ścieżka panelu (domyślnie przewidywalna, jeśli nie została zmieniona).

Panel to najcenniejszy cel — przejęcie konta administratora oznacza pełny dostęp do sklepu.

2. Ścieżki wtyczek, modułów i motywów

  • WordPress: /wp-content/plugins/…, /wp-content/themes/…, /wp-includes/…,
  • PrestaShop: /modules/…, /themes/…,
  • Magento: /static/versionXXXX/…, /pub/…, /media/….

Z takich adresów można odczytać nie tylko platformę, ale też nazwy i często wersje zainstalowanych dodatków.

3. Publiczne API i pliki pomocnicze

  • WordPress: REST API (/wp-json/), xmlrpc.php, readme.html,
  • Magento: publiczne endpointy REST i GraphQL,
  • różne pliki dokumentacyjne i konfiguracyjne pozostawione na serwerze.

4. Odciski w kodzie i protokole HTTP

  • znacznik meta generator w kodzie strony,
  • parametry wersji w adresach zasobów (np. ?ver=…),
  • nazwy ciasteczek sesji i koszyka,
  • nagłówki odpowiedzi serwera (wersja serwera, X-Powered-By z wersją PHP, nagłówki specyficzne dla platformy),
  • charakterystyczna struktura klas CSS i skryptów,
  • domyślne strony błędów.

Każdy z tych elementów to osobny sygnał rozpoznawczy. Dobry skaner łączy ich wiele, więc ukrycie platformy wymaga usunięcia wszystkich, a nie jednego.

Zasada naczelna: front publiczny, backend prywatny

W architekturze headless internet widzi tylko storefront (np. w Next.js lub Astro). Zaplecze działa według czterech reguł:

  1. Sieć prywatna. Zaplecze nie ma publicznego adresu IP albo ma go zablokowanego przez zaporę dla całego ruchu zewnętrznego.
  2. Jeden uprawniony klient. Z zapleczem rozmawia wyłącznie serwer aplikacji frontu (warstwa pośrednia), identyfikowany kluczem i adresem w sieci prywatnej.
  3. Panel tylko dla administratorów. Dostęp do panelu odbywa się przez VPN (np. WireGuard) i dodatkowo wymaga uwierzytelniania wieloskładnikowego.
  4. Brak publicznych endpointów zaplecza. Wszystko, co potrzebuje świat zewnętrzny, udostępnia front.

Dzięki temu pod adresem sklepu po prostu nie ma ani /wp-admin, ani /modules, ani /static/versionXXXX — nie dlatego, że je ukryto, tylko dlatego, że nie należą do publicznej aplikacji.

Diagram przepływu żądania

Słowami (bo tak najłatwiej zapamiętać):

  1. Przeglądarka klienta łączy się z domeną sklepu — odpowiada reverse proxy na publicznym serwerze.
  2. Proxy przekazuje żądanie do storefrontu (Next.js lub Astro), który zwraca stronę z pamięci podręcznej albo ją renderuje.
  3. Gdy potrzebne są dane dynamiczne (koszyk, zamówienie, konto), storefront wywołuje warstwę pośrednią (BFF) na tym samym serwerze.
  4. BFF łączy się z zapleczem przez sieć prywatną, z uwierzytelnieniem, i zwraca tylko ustalone pola.
  5. Odpowiedź wraca tą samą drogą — klient nigdy nie widzi adresu zaplecza ani nazw jego pól.

Warstwa pośrednia (BFF) — serce izolacji

BFF (backend for frontend) to niewielka aplikacja, która stoi między przeglądarką a zapleczem. Jej zadania:

  • Uwierzytelnianie i sesje — sama zarządza sesją klienta; zaplecze nie widzi przeglądarki, widzi zaufanego klienta.
  • Walidacja danych — każde żądanie jest sprawdzane pod kątem typu, długości i dozwolonych wartości, zanim trafi dalej.
  • Biała lista pól — odpowiedzi zaplecza są przepuszczane przez filtr: front dostaje tylko to, co zdefiniowano (np. nazwa, cena, zdjęcie), a nie pełen obiekt z polami wewnętrznymi.
  • Tłumaczenie formatu — struktury i nazwy pól platformy są zamieniane na neutralny, własny format.
  • Ograniczanie liczby żądań — rate limiting chroni przed nadużyciami.
  • Obsługa błędów — przeglądarka dostaje ogólne komunikaty, a szczegóły trafiają do logów.
  • Pamięć podręczna — często odpytywane dane (katalog) są buforowane, co odciąża zaplecze i przyspiesza sklep.

Dzięki BFF nawet pełna analiza ruchu sieciowego w przeglądarce nie zdradza, co stoi z tyłu: widzisz tylko własne, neutralne API sklepu.

Jak wyeliminować odciski platformy — checklista wdrożeniowa

Adresy URL i zasoby

  • własne, neutralne adresy kategorii, produktów, koszyka i zamówień,
  • zasoby front-endu z haszowanymi nazwami (bez nazw platformy i wtyczek),
  • brak katalogów typu wp-content, modules, static/version… w publicznej aplikacji.

Nagłówki i serwer

  • usunięte lub zmienione nagłówki ujawniające technologię (X-Powered-By, Server, nagłówki platform),
  • wyłączone ujawnianie wersji serwera WWW,
  • poprawne nagłówki bezpieczeństwa (HSTS, ograniczenie typów treści, polityka źródeł).

Kod strony

  • brak znaczników generatora i komentarzy z nazwą platformy,
  • własne klasy CSS i identyfikatory zamiast wzorców z motywów,
  • brak śladów wersji w adresach zasobów.

Sesje i ciasteczka

  • własne nazwy ciasteczek, flagi Secure, HttpOnly, SameSite,
  • brak ciasteczek charakterystycznych dla platformy.

Błędy i pliki pomocnicze

  • własne strony 404 i 500 bez śladów technologii,
  • brak plików typu readme, changelog, license w katalogu publicznym,
  • robots.txt i sitemap wygenerowane przez storefront, bez ścieżek zaplecza.

Elementy, które łatwo przeoczyć

Nawet starannie zbudowany front potrafi zdradzić zaplecze przez szczegóły:

  • Obrazy i media. Jeśli zdjęcia produktów są serwowane bezpośrednio z zaplecza (np. /media/catalog/…), ścieżka zdradza platformę. Zdjęcia powinny trafiać na front przez CDN lub własny katalog z neutralnymi adresami.
  • Webhooki. Płatności i integracje wysyłają powiadomienia — przyjmuje je BFF (nie zaplecze), po weryfikacji podpisu, i dopiero wtedy przekazuje dalej.
  • Wyszukiwarka wewnętrzna. Silnik wyszukiwania (np. Meilisearch lub Elasticsearch) działa w sieci prywatnej, a front odpytuje go przez BFF.
  • E-maile. Nagłówki wiadomości transakcyjnych potrafią ujawniać serwer i oprogramowanie; używaj zewnętrznej usługi wysyłki lub czyść nagłówki.
  • Stare adresy. Archiwa internetowe i wyszukiwarki pamiętają dawną wersję sklepu — po migracji warto wyłączyć stare ścieżki i zadbać o przekierowania.
  • Certyfikaty i DNS. Rejestry certyfikatów i rekordy DNS bywają publiczne — nie nazywaj subdomen w sposób zdradzający system (np. presta-admin).
  • Skrypty zewnętrzne. Widgety i piksele mogą ujawniać technologię — ładuj tylko te, których potrzebujesz.

Dostęp administratorów: VPN zamiast publicznego panelu

Panel zaplecza jest narzędziem pracy, więc ktoś musi mieć do niego dostęp. Najlepsze praktyki:

  1. VPN (np. WireGuard) — administrator łączy się z siecią prywatną i dopiero w niej widzi panel.
  2. Uwierzytelnianie wieloskładnikowe — nawet w sieci prywatnej konto administratora wymaga drugiego składnika.
  3. Lista dozwolonych adresów — dodatkowa warstwa, gdy znane są stałe adresy biura.
  4. Osobne konta i minimalne uprawnienia — każdy ma tylko te role, których potrzebuje; konta współdzielone są zakazane.
  5. Dzienniki dostępu — logowania i zmiany są rejestrowane i przeglądane.

Integracje z ERP, CRM i hurtowniami

Systemy firmowe nie powinny łączyć się z zapleczem przez publiczny internet. Typowe rozwiązania: tunel VPN między siecią firmy a infrastrukturą sklepu, zamknięte API z uwierzytelnianiem kluczem i ograniczeniem adresów albo wymiana plików po bezpiecznym kanale. Dzięki temu ceny hurtowe, stany i dane klientów nie przechodzą przez publiczną warstwę. Szerzej: integracja ERP, CRM i sklepu.

Uczciwe zastrzeżenie: czym to jest, a czym nie

Ukrycie platformy samo w sobie nie jest zabezpieczeniem — to jedna z warstw obrony. Jeśli zaplecze jest nieaktualne, a konta administratorów mają słabe hasła, ukrycie tylko opóźni problem. Prawdziwe bezpieczeństwo składa się z:

  • izolacji (zaplecze poza internetem),
  • aktualizacji (platforma, moduły, system, PHP — zob. bezpieczeństwo sklepu na PHP),
  • uprawnień (najmniejsze możliwe),
  • monitoringu i kopii zapasowych,
  • ukrycia odcisków jako dodatkowej warstwy, która utrudnia masowe skanowanie.

Dopiero razem tworzą obronę warstwową.

Jak sprawdzić, że to działa: test z zewnątrz

Po wdrożeniu przetestuj sklep tak, jak zrobiłby to atakujący:

  1. Kod źródłowy strony — wyszukaj nazwy platform, generator, nazwy katalogów wtyczek.
  2. Nagłówki odpowiedzi — sprawdź, czy nie ma wersji serwera i technologii.
  3. Typowe ścieżki — spróbuj otworzyć adresy paneli i katalogów popularnych platform; wszystkie powinny zwracać ogólny błąd 404.
  4. Skan portów z zewnątrz — otwarte powinny być tylko porty 80 i 443 serwera frontu; zaplecza w ogóle nie powinno być widać.
  5. Pliki i endpointy pomocnicze — sprawdź readme, xmlrpc, wp-json i podobne.
  6. Certyfikaty i DNS — przejrzyj publiczne rejestry pod kątem nazw zdradzających technologię.
  7. Archiwa i wyszukiwarki — sprawdź, czy stare adresy platformy nie są nadal dostępne.

Powtarzaj test po każdej większej zmianie.

Najczęstsze błędy

  • Zostawiony stary, publiczny sklep obok nowego frontu „na wszelki wypadek”.
  • Front pobierający dane bezpośrednio z zaplecza z przeglądarki (z publicznym adresem API).
  • Klucze zaplecza w kodzie frontu — wyciekają razem z aplikacją.
  • Panel dostępny „tylko pod nietypowym adresem” — to ukrycie, a nie izolacja.
  • Brak aktualizacji zaplecza z założenia, że „i tak nikt go nie widzi”.
  • Publiczne środowisko testowe z kopią produkcyjnych danych.

Korzyści biznesowe

  • mniej prób ataku i mniej „szumu” w logach,
  • mniejsza powierzchnia ataku i łatwiejsze zarządzanie dostępem,
  • swoboda zmiany zaplecza bez wpływu na front, adresy i SEO,
  • większa kontrola nad tym, jakie dane opuszczają system,
  • spokojniejsza praca zespołu, który nie musi walczyć z ciągłym skanowaniem.

Koszt i złożoność

Taka architektura wymaga więcej pracy projektowej niż zakup motywu: trzeba zaprojektować BFF, sieć prywatną i dostęp administratorów. Zwykle zwraca się jednak w niższych kosztach utrzymania i mniejszym ryzyku incydentów, a w branżach z danymi klientów, B2B i integracjami z ERP bywa wręcz wymogiem rozsądku.

Podsumowanie i co dalej

Sklep, w którym klienci i boty widzą tylko szybki front, a zaplecze pracuje w sieci prywatnej, jest trudniejszym celem, łatwiejszym w utrzymaniu i bardziej elastycznym. Pamiętaj tylko, że to architektura, a nie magiczne zaklęcie: wymaga dyscypliny w aktualizacjach i dostępach.

Kolejne części serii: izolacja danych oraz VPS dla sklepu headless. Jeśli chcesz zaprojektować taką architekturę dla swojego sklepu, zobacz usługę headless commerce i skontaktuj się z nami.

Najczęstsze pytania

Czy ukrycie platformy sklepu to zabezpieczenie?

Samo ukrycie nie jest zabezpieczeniem, ale jako jedna z warstw ogranicza automatyczne skanowanie i ataki masowe wymierzone w konkretne platformy. Prawdziwą ochroną jest izolacja zaplecza i jego aktualizacje.

Co zdradza platformę sklepu?

Typowe ścieżki (np. /wp-content/, /modules/, /static/), nagłówki odpowiedzi, nazwy plików i ciasteczek, znaczniki generatora, publiczne endpointy API i panelu oraz domyślne strony błędów.

Czy zaplecze może być całkiem niewidoczne z internetu?

Tak. Zaplecze pracuje w sieci prywatnej i komunikuje się wyłącznie z serwerem storefrontu; dostęp administratorów odbywa się przez VPN lub listę dozwolonych adresów. Publicznie nie ma ani panelu, ani API zaplecza.

Jak sprawdzić, czy platforma jest naprawdę ukryta?

Przetestować sklep z zewnątrz: sprawdzić nagłówki, kod źródłowy, typowe ścieżki platform, skan portów oraz dane w certyfikatach i archiwach. Lista kontrolna jest na końcu artykułu.

Czy to działa tylko dla sklepów na PHP?

Nie, zasada jest uniwersalna: zaplecze (dowolnej technologii) nie powinno być publicznie dostępne, a front pokazuje tylko to, co klient ma zobaczyć. PHP-owe platformy zyskują na tym najwięcej, bo są najczęściej skanowane.

Planujesz nową stronę lub sklep?

Opisz, co chcesz zbudować albo poprawić — odpowiemy konkretnie i przygotujemy bezpłatną wycenę.

Skontaktuj się

Czytaj dalej

Obsługujemy firmy z: Syców, Kępno, Milicz, Ostrzeszów, Namysłów, Bralin, Łęka Opatowska, Baranów.