Uw gegevens blijven waar ze horen.
Een samenvatting voor IT- en securityreviewers: hoe SnagBane wordt uitgerold, hoe het toegang regelt, hoe het is gehard en wat er precies uw server verlaat.
Uitrol en gegevens
- Zelf gehost. SnagBane is software die u installeert met Docker, op een VPS of op cPanel. Formulieren, antwoorden, bestanden en accounts worden opgeslagen in uw eigen database (MySQL/MariaDB, PostgreSQL of SQLite) en uw eigen opslag.
- Geen gedeelde standaardwachtwoorden. De Docker-database start met een installatiewachtwoord dat het installatieprogramma vervangt door een sterk willekeurig wachtwoord;
php artisan snagbane:db-passwordwijzigt het later. - Privé bestandsopslag buiten de webroot, met willekeurige bestandsnamen.
- Werkt op een intern netwerk. Het Free-abonnement heeft geen internettoegang nodig; Business en Enterprise hebben uitgaand HTTPS nodig voor de licentiecontrole.
Identiteit en toegang
- Single sign-on met Microsoft Entra ID, Google Workspace, Okta en elke SAML 2.0-identiteitsprovider zoals AD FS of Ping (Business en Enterprise) – alleen ondertekende SAML-antwoorden op aanmeldingen die SnagBane zelf startte, elk één keer geaccepteerd. Aanmeldingen via de adreslijst maken nooit beheerders aan, en roltoewijzing via groepen kan een rol alleen verhogen.
- Tweestapsverificatie voor SnagBane-accounts: een authenticator-app (de instelsleutel kan in een wachtwoordmanager) of FIDO2-beveiligingssleutels en passkeys — YubiKey, Windows Hello, Google Wachtwoordmanager, iCloud-sleutelhanger. De sterkste methode wordt eerst gevraagd; eenmalige herstelcodes zijn de weg terug, nooit alleen het wachtwoord. Kan verplicht worden voor beheerders, en een beheerder kan iemand vragen het opnieuw in te stellen.
- Accountvergrendeling na herhaalde mislukte aanmeldingen – ook voor onbekende e-mailadressen, zodat accounts niet te achterhalen zijn – strenge wachtwoordregels en bcrypt-hashing.
- Rollen en werkruimtes: eigenaren, beheerders, bewerkers, lezers en respondenten; toegangsregels per formulier, portaal en werkruimte. Bezoekers zonder toegang zien alleen de titel en beschrijving, nooit de vragen.
- Nieuwe mensen krijgen standaard geen bewerkrechten – de standaardrol is respondent.
Applicatiebeveiliging
- Strikte Content Security Policy met nonces per verzoek, bescherming tegen clickjacking, HSTS bij HTTPS, nosniff en een referrerbeleid. Bescherming tegen CSRF en session fixation.
- Uploads worden gecontroleerd met een lijst van toegestane extensies en inhoudsanalyse; scripts, uitvoerbare bestanden, SVG/HTML en dubbele extensies worden geblokkeerd.
- SSRF-bescherming voor elke webhook en integratie: privé- en metadata-adressen worden geblokkeerd (bestand tegen DNS-rebinding), met een toegestane lijst voor vertrouwde interne hosts die de beheerder bijhoudt.
- Versleutelde geheimen met uw applicatiesleutel. API-tokens, goedkeuringslinks en bewerk- en hervatlinks worden alleen als hash opgeslagen.
- Validatie aan de serverkant van elk antwoord, elk vertakkingspad en elke berekening; antwoorden op quizzen bereiken nooit de browser; formule-injectie wordt onschadelijk gemaakt in exports naar CSV, Excel en Google Sheets.
- Links opgebouwd uit uw ingestelde adres, nooit uit de Host-header van het verzoek.
Monitoring en audit
- Auditlogboek van aanmeldingen, beheer, exports en goedkeuringsbeslissingen, inclusief wie een goedkeurder wijzigde en waarom.
- Streaming naar SIEM: elke regel wordt ook als één platte JSON-regel naar een dagelijks bestand geschreven, klaar voor Microsoft Sentinel, Elastic of een Splunk Universal Forwarder. Export als CSV of JSON Lines.
- Ondertekende webhooks (HMAC-SHA256 met tijdstempel), zodat ontvangers elke aanroep kunnen controleren.
Updates en toeleveringsketen
- Ondertekende updates: elke release wordt vóór installatie gecontroleerd met Ed25519 en daarna in onderhoudsmodus toegepast, met terugdraaien in één klik.
- Schone updates: bestanden die in een release zijn verwijderd, verdwijnen ook van uw server, zodat een bijgewerkte installatie gelijk is aan een nieuwe installatie.
- Licentiebewijzen worden ondertekend en gecontroleerd met een sleutel die in de app is ingebouwd – geen omgevingsinstelling kan een betaald abonnement ontgrendelen.
Instellingen die u bepaalt
Veilige standaardinstellingen zijn direct actief. In Instellingen → Beveiliging kunt u ze verder aanscherpen:
- Tweestapsverificatie verplichten voor beheerders
- Minimale wachtwoordlengte (hoofdletters, kleine letters en cijfers zijn altijd verplicht) en sessieduur
- Toegestane bestandsextensies en maximale uploadgrootte
- Toegestane privéhosts voor webhooks en integraties – al het interne wordt anders geblokkeerd
- Locaties en accounts in SharePoint, OneDrive en Google Drive die bewerkers mogen gebruiken (beheerders kunnen alles kiezen)
- Of accounts van Microsoft, Google en Okta ook een wachtwoord mogen gebruiken; accounts die in Entra ID of Google Workspace zijn uitgeschakeld, kunnen zich daar niet meer mee aanmelden
- Elk antwoord naar een JSON-logbestand schrijven voor uw logverzamelaar
- Bewaartermijn: oude antwoorden automatisch verwijderen na de periode die u kiest (zie AVG)

Architectuur
Eén webapplicatie op uw server – geen clouddienst van ons in het pad van uw gegevens.
- Applicatie: PHP 8.3+ (Laravel) achter uw webserver, of het Docker-image. De browser-app komt van hetzelfde adres; er worden geen scripts, lettertypen of CDN’s van derden geladen, en de Content-Security-Policy staat alleen uw eigen server toe.
- Database: MySQL/MariaDB, PostgreSQL of SQLite – formulieren, antwoorden, goedkeuringen, accounts en instellingen. Wachtwoorden en API-sleutels van integraties worden versleuteld met de eigen sleutel van de installatie (
APP_KEY). - Bestanden: uploads, handtekeningen en gegenereerde pdf’s in de map
storage, buiten de webroot, met willekeurige namen; ze worden pas na een toegangscontrole geleverd. - Planner: één cronregel (
schedule:runelke minuut) verstuurt herinneringen, past het bewaarbeleid toe en controleert op updates en de licentie. - Openbare adressen: formulieren (
/f/…), portalen (/p/…), goedkeuringslinks (/approve/…) en bevestigingen (/r/…) – elk controleert een eigen toegangsregel of ondertekend token. Al het andere (/app,/api) vereist een aangemeld account; de REST API (Business en Enterprise) en SCIM (Enterprise) vereisen tokens. - Back-ups zijn van u: de database plus de map
storage, inclusiefstorage/.envmet de sleutel die opgeslagen geheimen ontsleutelt.
Wat uw server verlaat
SnagBane heeft geen analytics of telemetrie. Uit zichzelf maakt het alleen deze verbindingen:
| Verbinding | Wat er wordt verzonden | Naar | Wanneer |
|---|---|---|---|
| Updatecontrole | Editie, versie, PHP-versie en site-adres. Met een licentie ook: de licentiesleutel, het installatie-ID van Freemius en een willekeurig installatie-ID | Updatedienst van SnagBane (Cloudflare) | Dagelijks en wanneer een beheerder controleert; uit te zetten met SNAGBANE_UPDATES=false |
| Update downloaden | Alleen het verzoek om het ondertekende pakket | Updatedienst van SnagBane | Wanneer een beheerder een update installeert |
| Licentieactivering (Business, Enterprise) | De licentiesleutel, een willekeurig installatie-ID, adres en naam van de site, de versie, en de naam en het e-mailadres van de beheerder die activeert | Freemius (onze wederverkoper) | Eén keer, bij het toevoegen van de licentie |
| Licentiecontrole (Business, Enterprise) | De licentiesleutel, het installatie-ID van Freemius, het willekeurige installatie-ID en de versie | Freemius en de licentiedienst van SnagBane | Dagelijks; elk uur zolang een controle mislukt |
En deze alleen als u ze instelt:
| Wat u inschakelt | Wat er wordt verzonden | Naar |
|---|---|---|
| Meldingen, goedkeuringsverzoeken en bevestigingen | De maildienst die u instelt (SMTP of API) | |
| Aanmelden en adreslijst | Aanmeldverzoeken; leesacties op de adreslijst voor personenkiezers, leidinggevenden en groepen | Microsoft Entra ID, Google Workspace, Okta of uw SAML-identiteitsprovider |
| Integraties en webhooks | De antwoorden en bestanden die elk ervan moet versturen | De diensten die u koppelt, bij de gebeurtenissen die u kiest |
| Betalingen in formulieren | Bedrag, valuta, waarvoor wordt betaald en het e-mailadres van de respondent als dat bekend is – nooit kaartgegevens | Stripe of PayPal |
| Auditlogboek naar uw SIEM | Regels uit het auditlogboek | Uw Sentinel, Splunk, Elastic of HTTPS-endpoint |
| Machinevertaling | De formulierteksten die u laat vertalen | DeepL, Azure, Google of LibreTranslate |
| Meldingen van de telefoonapp | Een leeg wekbericht – de telefoon haalt daarna de melding op van uw server | De pushdienst van de browser van die persoon |
| Een formulier importeren via een link | Een verzoek voor die openbare formulierpagina | Google Forms of Microsoft Forms, wanneer een bewerker er een importeert |
| Keuzes uit een lijst | Een verzoek voor de lijst | Het CSV-adres, de SharePoint-lijst, de Excel-tabel of het Google-spreadsheet dat u koppelt |
Documenten voor reviewers
- Beleid voor het melden van kwetsbaarheden – hoe u een beveiligingsprobleem meldt, en security.txt.
- Verwerkersovereenkomst – voor de persoonsgegevens die u in supportverzoeken met ons zou kunnen delen (in het Engels).
- AVG en gegevensbescherming, het privacybeleid en de licentieovereenkomst (de laatste twee in het Engels).
- De servercode wordt leesbaar met de software meegeleverd, zodat uw team die op uw eigen installatie kan beoordelen en op beveiliging kan testen (EULA, sectie 2.3).
We claimen geen certificeringen zoals ISO 27001 of SOC 2: SnagBane draait binnen uw infrastructuur, onder uw controles en audits.
Vragen van reviewers
Kunnen we het zonder internettoegang draaien?
Met het Free-abonnement wel – er is niets nodig. Business en Enterprise hebben uitgaand HTTPS nodig om het licentiebewijs minstens elke 2 dagen te vernieuwen; formulieren, antwoorden en goedkeuringen blijven werken, ook als betaalde functies gepauzeerd zijn.
Wie kan antwoorden zien?
Alleen mensen die u toegang geeft tot de werkruimte van het formulier, plus goedkeurders voor de aanvragen die aan hen zijn toegewezen. Goedkeurders openen bestanden via hun goedkeuring, nooit via een openbare link.
Hoe worden de rechten voor Microsoft 365 ingesteld?
In uw eigen tenant: het aanbevolen PowerShell-script maakt daar de app-registratie aan, zodat u elke machtiging ziet en beheert. Zie machtigingen.
Hoe krijgen we het auditlogboek in Sentinel of Splunk?
Met het Enterprise-abonnement stuurt SnagBane het rechtstreeks naar Microsoft Sentinel, Splunk, Elastic of elk HTTPS-endpoint. U kunt ook een logverzamelaar laten lezen uit de dagelijkse JSON Lines-bestanden in storage/logs/audit. Zie de SIEM-handleiding.
Hoe melden we een beveiligingsprobleem?
Mail ons zoals beschreven in het beleid voor het melden van kwetsbaarheden. Open alstublieft niet eerst een openbaar issue.
Waar staan de back-ups?
Waar u uw server ook back-upt: de database en de map storage. SnagBane bewaart nergens anders kopieën.