Robuuste werking en technische verificatie · 24 oktober 2026

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.

Het uitgangspunt

Axoo probeert niet iedere afwijking als een fout te behandelen. Het systeem vangt op wat betrouwbaar kan worden verwerkt en signaleert wat verdere aandacht vereist. Zo wordt een menselijke vergissing niet automatisch een administratief probleem.

Geverifieerde beveiligingscontroles

De onderstaande technische vaststellingen komen uit controles van 24 oktober 2026. We maken onderscheid tussen praktisch uitgevoerde HTTP-tests, serverconfiguratie en maatregelen die in de broncode zijn bevestigd.

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 getest

De aanvraag werd geweigerd met HTTP 403 en het antwoord “Ongeldige aanvraagherkomst.”

Ongewenste Origin bij pairing-confirm

Bewijsniveau: praktisch getest

Ook deze aanvraag werd geweigerd met HTTP 403 en het antwoord “Ongeldige aanvraagherkomst.”

Te grote aanvraag bij pairing-start

Bewijsniveau: praktisch getest

Een 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-uitvoer

nginx -t rapporteerde een geldige configuratie.

nginx na herladen

Bewijsniveau: commando-uitvoer

De service rapporteerde een actieve status.

Beveiliging van pairing-routes

Bewijsniveau: configuratie-inspectie

De actieve configuratie toont een aanvraaglimiet, een bodylimiet van 2 KB, statuscode 429 en een door nginx ingestelde client-IP-header.

PostgreSQL-luisteradres

Bewijsniveau: socketinventaris

De 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-inspectie

De 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-inspectie

De aanwezighedenquery filtert registraties op bedrijfs-ID. PDF- en Excel-exports hergebruiken hetzelfde bedrijfs-ID uit de sessie.

Smartphonekoppeling

Bewijsniveau: broncode-inspectie

De 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-inspectie

HMAC-SHA256-ondertekening koppelt de challenge aan bedrijf, werknemer en ScanTag. De geldigheid bedraagt vijf minuten; handtekening en vervaltijd worden gecontroleerd.

Toestelgeheim

Bewijsniveau: broncode-inspectie

Een 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-inspectie

Cryptografisch willekeurige sessietokens, opslag van alleen de tokenhash, een Secure- en HttpOnly-cookie, een vervaldatum, sessie-intrekking en bedrijfsgebonden controles.

Wachtwoordherstel

Bewijsniveau: broncode-inspectie

Hersteltokens 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-inspectie

De 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-inspectie

Notities kunnen uitsluitend aan een lege nota worden toegevoegd, met toestelgebonden controle en binnen vijftien minuten. De oorspronkelijke scanvelden worden door deze notitiebewerking niet gewijzigd.