Hummi CMS • Security by Design • OWASP ZAP • CSP

Bezpieczeństwo,
które wynika z architektury systemu.

W popularnych systemach CMS bezpieczeństwo bywa często warstwą dokładną po fakcie: pluginem, osobnym modułem lub dodatkiem łagodzącym skutki złożonego środowiska. W Hummi punkt wyjścia jest odwrotny.

System ogranicza powierzchnię ataku na poziomie modelu danych, bootstrapu, łańcucha zależności i publicznych punktów wejścia. Dzięki temu bezpieczeństwo nie zależy od liczby zainstalowanych rozszerzeń, lecz od liczby elementów, które w ogóle zostały dopuszczone do uruchomienia.

Zobacz warstwy ochrony Wróć do dokumentacji Hummi CMS
Audyty OWASP ZAP • 0 krytycznych / średnich
Warstwa danych 0 SQL na produkcyjnej ścieżce odczytu
Bootstrap Centralna inicjalizacja CSP i nagłówków
Założenie bezpieczeństwa

Największe ryzyko nie wynika zwykle z jednej luki, lecz z nadmiaru ruchomych elementów.

W praktyce bezpieczeństwo strony firmowej rzadko przegrywa z powodu jednego spektakularnego błędu. Znacznie częściej problemem jest rozbudowany łańcuch zależności: pluginy, motywy, integracje i komponenty, które muszą pozostać ze sobą zgodne przez cały cykl życia wdrożenia.

Hummi ogranicza ten problem strukturalnie. Mniej warstw oznacza mniej punktów wejścia, mniej podatności wynikających z zewnętrznego kodu i mniejszą liczbę miejsc, w których bezpieczeństwo może zostać osłabione przez przypadek lub brak aktualizacji.

Model ochrony
Centralna inicjalizacja bezpieczeństwa

Środowisko, sesja i nagłówki bezpieczeństwa są inicjalizowane zanim uruchomi się logika aplikacyjna

Rdzeń Hummi uruchamia się w stałej kolejności: środowisko, ścieżki, autoloader, zabezpieczenia, konfiguracja, język i routing. To ważne, bo bezpieczeństwo nie jest dodatkiem wykonywanym gdzieś po drodze, lecz częścią bootstrapu systemu.

Oznacza to centralną kontrolę nad sesją, nagłówkami bezpieczeństwa, polityką Content-Security-Policy oraz zachowaniem środowiska production i development. Taki model ogranicza ryzyko niespójnych wdrożeń i przypadkowych luk wynikających z rozproszonej konfiguracji.

Bootstrap CSP Security Headers Production-safe defaults Deterministic initialization
Kolejność uruchomienia
1. wykrycie środowiska
2. definicja ścieżek
3. autoloader
4. zabezpieczenia
5. konfiguracja
6. język
7. routing

Bezpieczeństwo nie jest dodatkiem.
Jest częścią startu systemu.
Warstwy techniczne

Audyty OWASP ZAP

Publiczna warstwa systemu przechodzi regularne testy penetracyjne. Audyty OWASP ZAP Full Scan oraz AJAX Spiders potwierdzają brak podatności krytycznych i średnich.

Eliminacja klasy ryzyk SQL Injection

Produkcyjny odczyt treści nie korzysta z relacyjnej bazy danych. Brak SQL na publicznej ścieżce renderu eliminuje całą klasę ryzyk związaną z SQL Injection w tej warstwie.

Zamknięty łańcuch zależności

Brak marketplace'u wtyczek i motywów oznacza brak zewnętrznego łańcucha zależności, który trzeba stale synchronizować. Routing, formularze i analityka są częścią jednego silnika.

Rate Limiting i anty-flooding

Publiczne wejścia systemu są chronione mechanizmami ograniczającymi częstotliwość żądań w modelu sliding window. Chroni to aplikację przed floodingiem i niekontrolowanym obciążeniem zasobów.

Stateless API i Honeypot

Publiczne endpointy działają całkowicie bezstanowo (bez wymuszania sesji), co radykalnie zwiększa wydajność. Ruch zautomatyzowany przechwytywany jest przez niewidoczne warstwy honeypot, które usypiają boty fałszywymi komunikatami sukcesu.

Content-Security-Policy i nagłówki

Klasa inicjalizacyjna wymusza nagłówki bezpieczeństwa, usuwa identyfikatory technologii i utrzymuje restrykcyjną politykę CSP. Ogranicza to ryzyko XSS, clickjackingu i przypadkowego rozluźnienia polityki odpowiedzi.

Publiczne wejścia i integralność danych
Warstwa aplikacyjna

Ochrona nie kończy się na filtrowaniu wejścia. Liczy się też spójność zapisu.

Warstwa bezpieczeństwa w Hummi nie ogranicza się do sprawdzenia, czy dane „wyglądają poprawnie”. System kontroluje również sposób, w jaki dane są zapisywane i utrzymywane pod równoległym obciążeniem.

Publiczne żądania są walidowane, ograniczane przez rate limiting i obsługiwane w modelu, który chroni integralność danych przy współbieżnych zapisach. To istotne szczególnie tam, gdzie aplikacja obsługuje analitykę i formularze bez pośrednictwa usług trzecich.

Atomic write Locking Race condition protection Sliding window Integrity
Model ochrony wejścia
  • kontrola metody żądania,
  • weryfikacja pochodzenia,
  • walidacja struktury danych,
  • ograniczenie dozwolonych wartości,
  • filtrowanie ruchu zautomatyzowanego.
Model ochrony zapisu
  • blokada zapisu przy współbieżnych żądaniach,
  • kontrola integralności danych,
  • atomiczny zapis do warstwy plikowej,
  • ograniczenie ryzyka race condition.
Wniosek

Bezpieczeństwo Hummi wynika z mniejszej liczby warstw.

Mniej zależności, brak SQL na ścieżce odczytu, centralna inicjalizacja bezpieczeństwa i audytowalna publiczna warstwa systemu tworzą środowisko, które łatwiej utrzymać w przewidywalnym stanie bezpieczeństwa.

Najważniejsza różnica

Hummi nie próbuje „dodać bezpieczeństwa” do złożonego stosu. Hummi redukuje złożoność systemu, a przez to ogranicza liczbę miejsc, w których bezpieczeństwo mogłoby się załamać.

Powiązane materiały
Kontakt
Wdrożenie Hummi CMS

Jeśli bezpieczeństwo ma być cechą systemu, a nie dodatkiem

Pokażę, jak architektura Hummi wygląda w praktyce i które warstwy bezpieczeństwa mają znaczenie dla Twojego typu projektu.

Szybki kontakt

Opisz projekt

Wysyłając formularz, zgadzasz się na kontakt w sprawie zapytania.
Szczegóły znajdziesz w Polityce prywatności.