Twoje dane zostają tam, gdzie powinny.
Podsumowanie dla osób oceniających IT i bezpieczeństwo: jak wdraża się SnagBane, jak kontroluje dostęp, jak jest zabezpieczony i co dokładnie opuszcza Twój serwer.
Wdrożenie i dane
- Na własnym serwerze. SnagBane to oprogramowanie, które instalujesz w Dockerze, na VPS lub w cPanel. Formularze, odpowiedzi, pliki i konta są przechowywane w Twojej własnej bazie danych (MySQL/MariaDB, PostgreSQL lub SQLite) i w Twoim własnym magazynie plików.
- Żadnych wspólnych domyślnych haseł. Baza danych w Dockerze startuje z hasłem instalacyjnym, które instalator zastępuje silnym losowym hasłem;
php artisan snagbane:db-passwordzmienia je później. - Prywatny magazyn plików poza katalogiem głównym serwera WWW, z losowymi nazwami plików.
- Działa w sieci wewnętrznej. Plan Free nie potrzebuje dostępu do internetu; Business i Enterprise wymagają wychodzącego HTTPS do sprawdzania licencji.
Tożsamość i dostęp
- Logowanie jednokrotne z Microsoft Entra ID, Google Workspace, Okta i dowolnym dostawcą tożsamości SAML 2.0, takim jak AD FS czy Ping (Business i Enterprise) – tylko podpisane odpowiedzi SAML na logowania rozpoczęte przez SnagBane, każda przyjmowana jeden raz. Logowania z katalogu nigdy nie tworzą administratorów, a mapowanie ról z grup może rolę tylko podnieść.
- Weryfikacja dwuetapowa dla kont SnagBane: aplikacja uwierzytelniająca (jej klucz konfiguracji można zapisać w menedżerze haseł) albo klucze bezpieczeństwa FIDO2 i klucze dostępu — YubiKey, Windows Hello, Menedżer haseł Google, pęk kluczy iCloud. Najpierw prosimy o najsilniejszą metodę; jednorazowe kody odzyskiwania są drogą powrotu, nigdy samo hasło. Może być wymagana dla administratorów, a administrator może zażądać ponownej konfiguracji.
- Blokada konta po powtarzających się nieudanych logowaniach – także dla nieznanych adresów e-mail, więc nie da się odgadnąć, które konta istnieją – rygorystyczne zasady haseł i haszowanie bcrypt.
- Role i obszary robocze: właściciele, administratorzy, edytorzy, czytelnicy i respondenci; reguły dostępu dla każdego formularza, portalu i obszaru roboczego. Odwiedzający bez dostępu widzą tylko tytuł i opis, nigdy pytań.
- Nowe osoby domyślnie nie dostają uprawnień do edycji – domyślną rolą jest respondent.
Bezpieczeństwo aplikacji
- Ścisła polityka Content Security Policy z jednorazowymi wartościami nonce dla każdego żądania, ochrona przed clickjackingiem, HSTS przy HTTPS, nosniff i polityka referrer. Ochrona przed CSRF i przejęciem sesji (session fixation).
- Przesyłane pliki są sprawdzane według listy dozwolonych rozszerzeń i analizy zawartości; skrypty, pliki wykonywalne, SVG/HTML i podwójne rozszerzenia są blokowane.
- Ochrona przed SSRF dla każdego webhooka i każdej integracji: adresy prywatne i adresy metadanych są blokowane (odporność na DNS rebinding), z listą dozwolonych zaufanych hostów wewnętrznych, którą prowadzi administrator.
- Szyfrowane klucze tajne kluczem Twojej aplikacji. Tokeny API, linki do zatwierdzania oraz linki do edycji i wznawiania są przechowywane wyłącznie jako skróty (hash).
- Walidacja po stronie serwera każdej odpowiedzi, każdej ścieżki rozgałęzień i każdego obliczenia; odpowiedzi do quizów nigdy nie trafiają do przeglądarki; wstrzykiwanie formuł jest neutralizowane w eksportach do CSV, Excela i Arkuszy Google.
- Linki budowane z Twojego skonfigurowanego adresu, nigdy z nagłówka Host żądania.
Monitorowanie i audyt
- Dziennik inspekcji logowań, działań administracyjnych, eksportów i decyzji o zatwierdzeniu, w tym kto zmienił osobę zatwierdzającą i dlaczego.
- Przesyłanie do SIEM: każdy wpis jest też zapisywany jako jedna płaska linia JSON w pliku dziennym, gotowym dla Microsoft Sentinel, Elastic lub Splunk Universal Forwarder. Eksport do CSV lub JSON Lines.
- Podpisane webhooki (HMAC-SHA256 ze znacznikiem czasu), dzięki czemu odbiorcy mogą zweryfikować każde wywołanie.
Aktualizacje i łańcuch dostaw
- Podpisane aktualizacje: każde wydanie jest weryfikowane kluczem Ed25519 przed instalacją i stosowane w trybie konserwacji, z przywróceniem poprzedniej wersji jednym kliknięciem.
- Czyste aktualizacje: pliki usunięte w danym wydaniu znikają też z Twojego serwera, więc zaktualizowana instalacja jest taka sama jak nowa.
- Dowody licencji są podpisywane i weryfikowane kluczem wbudowanym w aplikację – żadne ustawienie środowiska nie odblokuje płatnego planu.
Ustawienia, które kontrolujesz
Bezpieczne ustawienia domyślne działają od razu. W sekcji Ustawienia → Bezpieczeństwo możesz je dodatkowo zaostrzyć:
- Obowiązkowa weryfikacja dwuetapowa dla administratorów
- Minimalna długość hasła (wielkie i małe litery oraz cyfry są zawsze wymagane) i czas trwania sesji
- Dozwolone rozszerzenia plików i maksymalny rozmiar przesyłanych plików
- Dozwolone hosty prywatne dla webhooków i integracji – wszystko inne wewnętrzne jest blokowane
- Lokalizacje i konta w SharePoint, OneDrive i na Dysku Google, z których mogą korzystać edytorzy (administratorzy mogą wybrać dowolne)
- Czy konta Microsoft, Google i Okta mogą też używać hasła; konta wyłączone w Entra ID lub Google Workspace nie mogą się już nim logować
- Zapisywanie każdej odpowiedzi do pliku dziennika JSON dla Twojego kolektora logów
- Przechowywanie danych: automatyczne usuwanie starych odpowiedzi po wybranym okresie (zobacz RODO)

Architektura
Jedna aplikacja internetowa na Twoim serwerze – bez naszej usługi chmurowej na drodze Twoich danych.
- Aplikacja: PHP 8.3+ (Laravel) za Twoim serwerem WWW lub obraz Dockera. Aplikacja w przeglądarce pochodzi z tego samego adresu; nie są ładowane skrypty, czcionki ani CDN firm trzecich, a Content-Security-Policy dopuszcza wyłącznie Twój serwer.
- Baza danych: MySQL/MariaDB, PostgreSQL lub SQLite – formularze, odpowiedzi, zatwierdzenia, konta i ustawienia. Hasła i klucze API integracji są szyfrowane własnym kluczem instalacji (
APP_KEY). - Pliki: przesłane pliki, podpisy i wygenerowane PDF-y w folderze
storage, poza katalogiem głównym serwera WWW, z losowymi nazwami; udostępniane dopiero po sprawdzeniu dostępu. - Harmonogram: jeden wpis cron (
schedule:runco minutę) wysyła przypomnienia, stosuje zasady przechowywania i sprawdza aktualizacje oraz licencję. - Adresy publiczne: formularze (
/f/…), portale (/p/…), linki do zatwierdzania (/approve/…) i potwierdzenia (/r/…) – każdy sprawdza własną regułę dostępu lub podpisany token. Cała reszta (/app,/api) wymaga zalogowanego konta; REST API (Business i Enterprise) i SCIM (Enterprise) wymagają tokenów. - Kopie zapasowe należą do Ciebie: baza danych i folder
storage, w tymstorage/.envz kluczem, który odszyfrowuje zapisane klucze tajne.
Co opuszcza Twój serwer
SnagBane nie ma analityki ani telemetrii. Sam z siebie nawiązuje tylko te połączenia:
| Połączenie | Co jest wysyłane | Dokąd | Kiedy |
|---|---|---|---|
| Sprawdzanie aktualizacji | Edycja, wersja, wersja PHP i adres witryny. Z licencją także: klucz licencyjny, identyfikator instalacji Freemius i losowy identyfikator instalacji | Usługa aktualizacji SnagBane (Cloudflare) | Codziennie i gdy sprawdza administrator; można wyłączyć przez SNAGBANE_UPDATES=false |
| Pobranie aktualizacji | Tylko żądanie podpisanego pakietu | Usługa aktualizacji SnagBane | Gdy administrator instaluje aktualizację |
| Aktywacja licencji (Business, Enterprise) | Klucz licencyjny, losowy identyfikator instalacji, adres i nazwa witryny, wersja oraz imię i nazwisko i e-mail administratora, który aktywuje | Freemius (nasz sprzedawca) | Raz, przy dodawaniu licencji |
| Sprawdzanie licencji (Business, Enterprise) | Klucz licencyjny, identyfikator instalacji Freemius, losowy identyfikator instalacji i wersja | Freemius i usługa licencyjna SnagBane | Codziennie; co godzinę, dopóki sprawdzenie się nie powiedzie |
A te – tylko jeśli je skonfigurujesz:
| Co włączasz | Co jest wysyłane | Dokąd |
|---|---|---|
| Powiadomienia, prośby o zatwierdzenie i potwierdzenia | Usługa pocztowa, którą konfigurujesz (SMTP lub API) | |
| Logowanie i katalog | Żądania logowania; odczyty katalogu dla selektorów osób, przełożonych i grup | Microsoft Entra ID, Google Workspace, Okta lub Twój dostawca tożsamości SAML |
| Integracje i webhooki | Odpowiedzi i pliki, które każda z nich ma wysłać | Usługi, które łączysz, przy wybranych zdarzeniach |
| Płatności w formularzach | Kwota, waluta, za co jest płatność i e-mail respondenta, jeśli jest znany – nigdy dane karty | Stripe lub PayPal |
| Dziennik inspekcji do Twojego SIEM | Wpisy dziennika inspekcji | Twój Sentinel, Splunk, Elastic lub endpoint HTTPS |
| Tłumaczenie maszynowe | Teksty formularzy, które zlecasz do tłumaczenia | DeepL, Azure, Google lub LibreTranslate |
| Powiadomienia aplikacji na telefon | Pusty sygnał wybudzenia – telefon pobiera potem powiadomienie z Twojego serwera | Usługa push przeglądarki danej osoby |
| Import formularza z linku | Jedno żądanie publicznej strony tego formularza | Google Forms lub Microsoft Forms, gdy edytor importuje formularz |
| Opcje z listy | Jedno żądanie listy | Adres CSV, lista SharePoint, tabela Excela lub arkusz Google, który łączysz |
Dokumenty dla osób oceniających
- Polityka zgłaszania podatności – jak zgłosić problem z bezpieczeństwem, oraz security.txt.
- Umowa powierzenia przetwarzania danych – dla danych osobowych, które możesz nam przekazać w zgłoszeniach do wsparcia (po angielsku).
- RODO i ochrona danych, polityka prywatności i umowa licencyjna (dwie ostatnie po angielsku).
- Kod serwera jest dostarczany z oprogramowaniem w czytelnej postaci, aby Twój zespół mógł go przejrzeć i przetestować pod kątem bezpieczeństwa na własnej instalacji (EULA, punkt 2.3).
Nie deklarujemy certyfikatów takich jak ISO 27001 czy SOC 2: SnagBane działa w Twojej infrastrukturze, objęty Twoimi kontrolami i audytami.
Pytania osób oceniających
Czy można go uruchomić bez dostępu do internetu?
W planie Free tak – niczego nie potrzeba. Business i Enterprise wymagają wychodzącego HTTPS, aby co najmniej co 2 dni odnawiać dowód licencji; formularze, odpowiedzi i zatwierdzenia działają dalej, nawet gdy płatne funkcje są wstrzymane.
Kto widzi odpowiedzi?
Tylko osoby, którym dasz dostęp do obszaru roboczego formularza, oraz osoby zatwierdzające – w przypadku przypisanych im wniosków. Osoby zatwierdzające otwierają pliki przez swoje zatwierdzenie, nigdy przez publiczny link.
Jak konfiguruje się uprawnienia Microsoft 365?
W Twojej własnej dzierżawie: zalecany skrypt PowerShell tworzy tam rejestrację aplikacji, więc widzisz każde uprawnienie i nim zarządzasz. Zobacz uprawnienia.
Jak przesłać dziennik inspekcji do Sentinel lub Splunk?
W planie Enterprise SnagBane wysyła go bezpośrednio do Microsoft Sentinel, Splunk, Elastic lub dowolnego endpointu HTTPS. Możesz też skierować kolektor na dzienne pliki JSON Lines w storage/logs/audit. Zobacz przewodnik SIEM.
Jak zgłosić problem z bezpieczeństwem?
Napisz do nas zgodnie z polityką zgłaszania podatności. Prosimy nie otwierać najpierw publicznego zgłoszenia.
Gdzie są kopie zapasowe?
Tam, gdzie robisz kopie zapasowe serwera: baza danych i folder storage. SnagBane nie przechowuje kopii nigdzie indziej.