Beveiliging bij Axoo
Axoo is ontworpen om dagelijkse vergissingen bij arbeidstijdregistratie op te vangen én de gegevens zorgvuldig te beschermen. Hieronder lees je hoe de registratie werkt en welke technische maatregelen op 24 oktober 2026 zijn gecontroleerd.
01 · Robuustheid in de praktijk
Een vergeten scan, een dubbele scan en een werkelijk afwijkende prestatie zijn drie verschillende situaties. Axoo is ontworpen om dat onderscheid te ondersteunen, zonder ontbrekende werkuren te verzinnen.
Dubbele scans
Een cooldown van 5 minuten voorkomt dat kort opeenvolgende scans onbedoeld dubbel meetellen.
Vergeten OUT
Een onvolledige registratie blokkeert de volgende werkdag niet. De situatie blijft zichtbaar voor opvolging.
Ontbrekende gegevens
NO DATA in plaats van verzonnen prestaties: ontbrekende IN- of OUT-tijdstippen worden niet als werkelijk gewerkte uren voorgesteld.
Roosterwijzigingen
Registraties worden vergeleken met het ingestelde referentiekader, met aandacht voor de historische roostergegevens.
Oorspronkelijke scans
De originele scanregistraties blijven behouden en worden niet stilzwijgend overschreven.
Smartphonekoppeling
Werknemer en toestel worden gecontroleerd gekoppeld, zodat de normale registratie na de eerste koppeling vlot verloopt.
02 · Praktisch uitgevoerde HTTP-controles
Drie testverzoeken zijn door de server geweigerd. Dit zijn concreet geteste situaties, geen garantie tegen alle mogelijke aanvallen.
Ongewenste Origin bij pairing-start
Bewijsniveau: praktisch getestDe aanvraag werd geweigerd met HTTP 403 en het antwoord “Ongeldige aanvraagherkomst.”
Ongewenste Origin bij pairing-confirm
Bewijsniveau: praktisch getestOok deze aanvraag werd geweigerd met HTTP 403 en het antwoord “Ongeldige aanvraagherkomst.”
Te grote aanvraag bij pairing-start
Bewijsniveau: praktisch getestEen aanvraag van ongeveer 3 KB werd geweigerd met HTTP 413.
03 · Serverconfiguratie en operationele controles
De volgende punten zijn nagegaan via commando-uitvoer of inspectie van de configuratie.
nginx-configuratie
Bewijsniveau: commando-uitvoernginx -t rapporteerde een geldige configuratie.
nginx na herladen
Bewijsniveau: commando-uitvoerDe service rapporteerde een actieve status.
Beveiliging van pairing-routes
Bewijsniveau: configuratie-inspectieDe actieve configuratie toont een aanvraaglimiet, een bodylimiet van 2 KB, statuscode 429 en een door nginx ingestelde client-IP-header.
PostgreSQL-luisteradres
Bewijsniveau: socketinventarisDe databaseservice luistert uitsluitend op lokale loopbackadressen.
04 · In de broncode bevestigde maatregelen
De onderstaande controles zijn teruggevonden in de onderzochte implementatie. Dit bewijsniveau verschilt van een onafhankelijk uitgevoerde penetratietest.
Klantisolatie: werknemers
Bewijsniveau: broncode-inspectieDe werknemersfiche zoekt op werknemers-ID én bedrijfs-ID uit de geverifieerde sessie. Bij wijzigingen aan het tijdsysteem wordt het bedrijfs-ID opnieuw gecontroleerd binnen de transactie.
Klantisolatie: aanwezigheden en export
Bewijsniveau: broncode-inspectieDe aanwezighedenquery filtert registraties op bedrijfs-ID. PDF- en Excel-exports hergebruiken hetzelfde bedrijfs-ID uit de sessie.
Smartphonekoppeling
Bewijsniveau: broncode-inspectieDe PairCode wordt binnen het bedrijf van de ScanTag gecontroleerd. Na naamsbevestiging wordt een bestaande koppeling geweigerd en een definitieve koppeling transactioneel uitgevoerd.
Pairing-challenge
Bewijsniveau: broncode-inspectieHMAC-SHA256-ondertekening koppelt de challenge aan bedrijf, werknemer en ScanTag. De geldigheid bedraagt vijf minuten; handtekening en vervaltijd worden gecontroleerd.
Toestelgeheim
Bewijsniveau: broncode-inspectieEen cryptografisch willekeurig token van 32 bytes wordt gebruikt. Alleen de SHA-256-hash wordt in de database opgeslagen. Aflevering gebeurt via een Secure, HttpOnly, SameSite=Strict-cookie.
Sessiebeveiliging werkgevers
Bewijsniveau: broncode-inspectieCryptografisch willekeurige sessietokens, opslag van alleen de tokenhash, een Secure- en HttpOnly-cookie, een vervaldatum, sessie-intrekking en bedrijfsgebonden controles.
Wachtwoordherstel
Bewijsniveau: broncode-inspectieHersteltokens zijn 30 minuten geldig en worden na succesvol gebruik verbruikt. Nieuwe wachtwoorden worden met bcrypt gehasht; bestaande gebruikerssessies worden transactioneel ingetrokken.
Integriteit van oorspronkelijke registraties
Bewijsniveau: broncode-inspectieDe onderzochte reguliere code voorziet geen verwijdering of wijziging van de oorspronkelijke scanrichting, het scantijdstip of de historische locatie. Shifts kunnen conditioneel worden bijgewerkt; een ontbrekende oorspronkelijke IN-scan veroorzaakt een fout.
Notities bij scans
Bewijsniveau: broncode-inspectieNotities kunnen uitsluitend aan een lege nota worden toegevoegd, met toestelgebonden controle en binnen vijftien minuten. De oorspronkelijke scanvelden worden door deze notitiebewerking niet gewijzigd.
