Wiedza

Strona publiczna i panel admina osobno: szybciej i bezpieczniej za VPN

Wróć do listy artykułów

Rano w logach hostingu: tysiące prób logowania na /wp-admin i /admin. Nikt z firmy tam nie wchodził. Boty sprawdzają, czy panel stoi otwarty na świat, tak jak strona firmowa, tak jak formularz kontaktowy. Obok leży baza z klientami, cenami i zamówieniami. Jedna dziura w wtyczce albo słabe hasło i atakujący dostaje nie tylko "stronę", tylko zaplecze firmy.

To klasyczny model: jedna aplikacja robi wszystko: pokazuje się klientom i pozwala zespołowi edytować treści, zamówienia, ceny. Headless to inna decyzja architektoniczna. Publiczna strona i panel admina nie muszą być tym samym serwisem wystawionym na ten sam adres.

Strona publiczna i panel admina za VPN: rozdzielona architektura headless

Czym jest headless prostym językiem

"Headless" znaczy: to, co widzi klient (strona, sklep, landing), jest oddzielone od tego, czym zarządza zespół (panel, CMS, silnik zamówień). Front pobiera dane z zaplecza, ale nie jest z nim zespawany w jeden monolityczny system.

Dla właściciela firmy przekłada się to na trzy rzeczy:

  1. Klient dostaje lekką, szybką witrynę: bez ciężkiego panelu i bazy przy każdym wejściu.
  2. Zespół pracuje w narzędziu dopasowanym do procesu, nie w szablonie "wszystko w jednym".
  3. Zaplecze możesz trzymać inaczej niż front: inny hosting, inna sieć, nawet bez publicznego adresu.

W e-commerce ten model dobrze pokazuje sklep na MedusaJS: silnik sklepu i panel są osobno od wyglądu sklepu. Przy stronie firmowej często łączy się lekki front (np. statyczny) z headless CMS albo własnym panelem, o samej stronie pisaliśmy w Strona internetowa jako narzędzie.

Dlaczego warto rozdzielić front i zaplecze

Szybkość. Publiczna strona może być plikami na CDN albo lekkim serwerem. Nie musi przy każdym odświeżeniu odpalać silnika CMS-u, bazy i tuzina wtyczek. Google i użytkownik to widzą.

Niezależny rozwój. Zmieniasz wygląd landinga bez ruszania logiki zamówień. Dopinasz pole w panelu bez przebudowy całej witryny. Front i zaplecze rosną we własnym tempie.

Mniejsza powierzchnia awarii. Gdy panel albo CMS ma prace serwisowe, strona publiczna nadal może serwować gotową wersję treści. Nie wszystko pada razem, bo nie wszystko siedzi w jednej aplikacji.

Panel pod proces. Zespół dostaje ekrany, które odpowiadają temu, jak naprawdę pracuje, zamówienia, wyceny, statusy produkcji, a nie uniwersalny "dashboard" z cudzego szablonu. To ten sam kierunek, co przy oprogramowaniu na miarę zamiast wiecznego SaaS.

I bezpieczeństwo. Skoro panel nie musi być częścią publicznej strony, nie musi też być dostępny z całego internetu.

Panel admina nie musi wisieć w internecie

W klasycznym CMS panel logowania jest pod znanym adresem. Boty go znają. Hasła próbują. Wtyczki i motywy zwiększają liczbę miejsc, w które można trafić. Publiczna strona i zaplecze to jeden organizm.

W modelu headless możesz wystawić na świat tylko to, co ma być publiczne: stronę, sklep, formularze, API potrzebne klientowi. Panel, CMS i narzędzia wewnętrzne zostają w sieci firmowej. Ktoś z zewnątrz nie powinien nawet "zobaczyć" logowania: bo adres panelu nie odpowiada poza VPN.

To nie magiczna ochrona. To decyzja: co jest produktem dla klienta, a co narzędziem dla zespołu. Te dwie rzeczy nie muszą dzielić tego samego wejścia.

Jak budować bezpieczny panel za VPN

Cel jest prosty: panel działa tylko dla osób, które są w zaufanej sieci firmowej. Reszta internetu go nie widzi.

Sieć prywatna zamiast publicznego URL

Panel stoi za VPN: klasycznym firmowym, WireGuard, Tailscale albo podobnym. Po połączeniu pracownik wchodzi na wewnętrzny adres (albo DNS, który działa tylko w tej sieci). Bez VPN, timeout, brak strony, cisza. Nie ma publicznego /admin do skanowania.

Nie publikujesz panelu w Google. Nie dajesz mu certyfikatu na domenie, którą i tak widzi cały świat. Jeśli ktoś potrzebuje dostępu z domu, łączy się VPN-em, a nie otwartym logowaniem z kawiarni.

Logowanie i role nadal mają znaczenie

VPN nie zastępuje haseł. Nadal chcesz MFA (drugi składnik), konta osobowe zamiast wspólnego "admin/admin", role (kto edytuje ceny, kto tylko czyta zamówienia) i logi: kto się zalogował, kiedy, skąd. VPN ogranicza, kto w ogóle może zacząć próby. Reszta pilnuje, co robi osoba już w środku.

Front osobno, API pod kontrolą

Strona publiczna może stać na CDN albo lekkim hostingu. Panel i baza, na innym serwerze, w innej sieci. Jeśli front potrzebuje danych z zaplecza, API dostaje tylko to, co musi (katalog, status zamówienia dla klienta), a nie pełny dostęp jak w panelu. Tam, gdzie da się ograniczyć źródła (np. tylko Twój front), warto to zrobić.

Czego VPN nie zastąpi

Aktualizacje zależności, kopie zapasowe, sekrety poza repozytorium, sensowne uprawnienia w bazie, to nadal Twoja robota albo umowa utrzymania. VPN chowa drzwi. Nie naprawia dziurawego zamka w środku ani braku backupu po awarii dysku.

Kiedy to ma sens, a kiedy nie

Sens ma, gdy w panelu siedzą dane, które bolą przy wycieku albo sabotażu: klienci, zamówienia, ceny B2B, dokumenty, statusy produkcji, dostęp do integracji z ERP. Albo gdy zespół codziennie pracuje w narzędziu operacyjnym, wtedy panel to część firmy, nie "dodatek do strony".

Mniej sensu przy prostym blogu, jednym redaktorze i treściach bez danych osobowych. Wtedy bywa, że wystarczy lekka strona bez publicznego ciężkiego CMS i publikacja przez build, bez osobnego panelu za VPN.

Granica jest praktyczna: czy ktoś z internetu w ogóle powinien móc trafić w ekran logowania? Jeśli odpowiedź brzmi "nie", headless plus VPN to naturalny układ, nie ekstra luksus.

Na koniec

Headless to nie moda na słowa z konferencji. To decyzja, żeby strona klienta i zaplecze zespołu nie były jednym monolitem wystawionym na boty. Front może być szybki i publiczny. Panel może być wygodny i schowany za VPN, z MFA i rolami.

W Procforce tak budujemy strony, panele biznesowe i sklepy: to, co widzi rynek, osobno od tego, czym zarządzacie wewnętrznie. Jeśli macie panel na tym samym adresie co witrynę albo CMS, którego login widzi cały internet, napiszcie. Powiemy, co warto rozdzielić najpierw, a co zostawić na później.

Chcesz omówić temat z artykułu? Napisz do nas.

Napisz do nas