Anti-quishing aan de uitgeverskant. Dataresidentie aan de opslagkant.
Elke Pro-link doorloopt een anti-quishing pipeline van zeven lagen bij aanmaak, bij elke bestemmingswijziging en op een rollend schema. Het scanlogboek bevat alleen land plus apparaatklasse, zonder IP, zonder user-agent, zonder cookie, zonder gedragsprofiel dat kan uitlekken. Single-region D1 is beschikbaar op Agency en Custom Enterprise.
Data die we verzamelen
Elke byte die op onze servers belandt, valt in een van vier categorieën:
Accountgegevens
E-mailadres, abonnementstier, abonnementsstatus, Stripe klant- + abonnements-ID's, optionele teamnaam + werkruimtelabel. Dat is alles. Geen telefoon, geen adres (factuuradres blijft bij Stripe), geen gedragsprofiel.
Codegegevens
De bestemmings-URL, een 7-teken Base58-shortcode, een label + tags die je instelt, optioneel QR-ontwerp (kleuren / logo / frame), optionele wachtwoordbeveiliging, optioneel schema. Van jou; altijd als CSV exporteerbaar.
Scangegevens
UTC dag-bucket + land (van CF-IPCountry) + apparaatklasse (mobile / tablet / desktop / unknown). Ruwe User-Agent wordt direct na classificatie weggegooid. IP komt nooit in de database. Gecached in KV voor het redirect-hotpad, samengevoegd in D1 via ctx.waitUntil. Landen met minder dan 5 scans worden samengevoegd in "Overig" ter bescherming tegen heridentificatie.
Audit / factureringsmetadata
Alleen-toevoegen log van mutaties (wie deed wat, wanneer, in welke scope), 180 dagen retentie. Stripe-webhook-events ontdubbeld voor idempotentie, geen klant-PII buiten de Stripe-klant-ID. GDPR-verzoeklog (export / verwijder / herstel), behouden na accountverwijdering voor bewijs van tijdig nakomen.
Voor het volledige schema, zie docs/SCHEMA.md in onze bronrepo; elke kolom is gedocumenteerd met een bewaarbeleid.
Waar de data staat
| Oppervlak | Provider | Regio | Single-region optie? |
|---|---|---|---|
| Dashboard + API | Cloudflare Pages Functions | Global edge (dichtstbijzijnde PoP) | Ja, alleen Agency+ |
| Code records (D1) | Cloudflare D1 (SQLite) | Primaire regio toegewezen bij provisioning (nu: ENAM) | Ja, Agency+ per-tenant shard |
| Redirect hot path (KV) | Cloudflare Workers KV | Edge-gerepliceerd wereldwijd voor <50ms p99 | Niet beschikbaar (replicatie is het product) |
| Versleutelde back-ups | Cloudflare R2 | Primaire regio toegewezen bij aanmaak bucket | Ja, EU / APAC jurisdictionele bucket op aanvraag |
| Betalingen | Stripe | VS, regionale PII-afhandeling via Stripe's eigen residentie | Via Stripe-contract |
| Transactionele e-mail | ZeptoMail (Zoho) | IN (Zoho EU-regio beschikbaar op aanvraag) | Ja, Zoho EU-regio |
Wat een grens overschrijdt, precies
- Scans overschrijden nooit een grens op een verliesgevende manier. Een scan vanuit Lissabon raakt de Cloudflare PoP in Lissabon; de worker schrijft dag/land/apparaat naar KV aan de edge en voegt asynchroon samen in D1 in zijn primaire regio. Het IP van de oorspronkelijke scanner leeft in de kortstondige requeststate van Cloudflare voor de duur van het HTTP-verzoek en wordt nooit opgeslagen in onze database.
- Dashboard-verzoeken eindigen bij de dichtstbijzijnde Cloudflare PoP en roepen D1 aan via het privénetwerk van Cloudflare. Onze Pages Functions lezen/schrijven D1 in de toegewezen regio; de edge PoP serveert de HTML + JS-bundel vanuit de globale static-asset cache.
- Stripe-webhooks overschrijden de grens eenmalig: Stripe (VS) POST't naar ons Cloudflare Pages-eindpunt, dat de HMAC verifieert, een minimale rij (event_id, type) schrijft voor idempotentie en downstream events verzendt.
- Transactionele e-mail (Zepto) overschrijdt de grens eenmalig per verzending: onze worker geeft een gerenderd template door aan de Zepto API; Zepto levert af bij de mailserver van de ontvanger. De inhoud bestaat uit uitnodigingslinks, factureringslevenscyclusberichten en scan-cap-meldingen, geen klant-scandata.
Anti-quishing pipeline
QR-phishing steeg met 146% in Q1 2026. De standaard short-linkaanbieder reageert pas na een klantklacht. Wij controleren elke link bij aanmaak, telkens wanneer de bestemming aan onze kant wordt gewijzigd, en op een rollend schema, omdat een klant zijn eigen URL op zijn eigen server kan omzetten zonder ooit onze API aan te roepen. Dezelfde threat-intel pipeline die onze publieke scanner aandrijft op check.qr.abundera.ai wordt uitgevoerd tegen elke link die we uitgeven.
Zeven detectielagen, elk met een lopende Amerikaanse patentaanvraag. Elke laag voedt een unified verdict; een treffer op een willekeurige laag kan een aanmaak blokkeren, een bestemmingswijziging weigeren of een al actieve link opschorten.
| Laag | Wat het opspoort | Wanneer het loopt |
|---|---|---|
| Redirect-chain mutabiliteit | Hoeveel onafhankelijke partijen het pad beheersen tussen onze short link en de eindpagina. Een twee-hop keten via een redirector van een derde is een andere risicoklasse dan een directe bestemming. | Aanmaak, bestemmingswijziging, rollende hercontrole |
| Multimodale payload-analyse | WiFi-, contact-, telefonie-, mail-, kalender-, geolocatie-, cryptocurrency-, Android-intent- en inline-data-payloads krijgen elk een typespecifieke analyser. Hard-geblokkeerde schema's weigeren bij indiening. | Aanmaak, bestemmingswijziging |
| Crawler-vs-browser cloaking | Pagina's die schone inhoud tonen aan scanners en phishing aan mensen. Gedetecteerd via parallelle fetches met gecontroleerde fingerprint-variantie en een divergentiescore. | Aanmaak, rollende hercontrole |
| Bestemmingsserver-mutabiliteit | Vers geregistreerde domeinen, gloednieuwe certificaten, hoog-verloop TLD's, ontbrekende HSTS en degradatie van transportschema. Onafhankelijk van de redirect-keten; een statische één-hop keten naar een zes dagen oud certificaat op een dubieuze TLD wordt alsnog gemarkeerd. | Aanmaak, bestemmingswijziging, rollende hercontrole |
| Fysieke-instantie herkomst | Crowd-sourced hash-grootboek gekeyed op gedecodeerde payload. Een enkele QR die gescand wordt vanuit veel verschillende regio's in een kort tijdvenster komt naar voren als sticker-aanvals-kandidaat. Elke link die wij uitgeven krijgt bij aanmaak een schone herkomstvermelding, zodat overlay-aanvallen op legitieme Pro-codes worden gevangen. | Continu |
| Visuele merkdivergentie | Als een code een merklogo draagt waarvan de canonical-domeinset de gedecodeerde bestemming niet bevat, is de code merkdivergent. Van toepassing op elke Pro-code die onze center-logo-functie gebruikt; een phisher kan geen Chase-gelogode code maken die naar een niet-Chase-domein wijst. | Aanmaak, logowijziging, bestemmingswijziging |
| Sensor / venue topologie | Voor locatiegebonden codes (parkeermeters, hotel check-in, restaurantmenu's, museumexposities) wordt de omgevings-RF-context van het scanapparaat gecontroleerd aan de hand van de geregistreerde topologie voor die locatie. Een mismatch geeft een sensor-context-anomalie bij zelfs de allereerste scan van een frauduleuze sticker. Enterprise-tier; de locatie-exploitant registreert de verwachte topologie bij aanmaak van de code. | Elke scan |
Het probleem van klantwijzigingen
De bestemmings-URL van een Pro-link staat op de server van de klant, niet de onze. De klant kan example.com/promo omzetten van een echte promo naar een phishingpagina zonder ooit de Abundera API aan te roepen. Wij behandelen dit als het primaire misbruikpad, niet als een randgeval. Rollende hercontroles op actieve bestemmingen draaien op een schema, en onze cloaking-detectielaag richt zich specifiek op pagina's die na indiening van inhoud wisselen. Wanneer een bestemming na aanmaak controles begint te falen, wordt de link automatisch gepauzeerd, de eigenaar gemaild met het specifieke verdict en het event gelogd in het auditspoor.
Valse positieven en bezwaar
Threat intel heeft het soms mis. Een legitiem merk op een nieuw uitgegeven certificaat, een echte promo waarvan de pagina legitiem is gewijzigd, een verhuisd domein. Elke blokkering en elke automatische pauze bevat de specifieke verdictlaag die uitkwam, de invoer die het triggerde en een bezwaarmogelijkheid met één klik die binnen één werkdag naar een persoon escaleert. We kiezen voor pauzeren in plaats van verwijderen; een gepauzeerde link kan in seconden opnieuw worden ingeschakeld zodra het bezwaar is afgehandeld.
Single-region residentie (Agency+ en Custom Enterprise)
Voor kopers die alleen EU of alleen APAC willen, kunnen Agency-tier klanten aanvragen:
- D1 in één jurisdictie (EU: EEUR of WEUR; APAC: APAC). Cloudflare respecteert een
location-hint bij database-aanmaak; wij starten een per-tenant D1-shard op in de gevraagde regio (ADR-0010). - R2-bucket in dezelfde jurisdictie, nachtelijkse versleutelde D1-naar-R2-back-ups landen in de bijbehorende regio.
- Zepto EU-regio voor transactionele e-mail, geconfigureerd op serviceniveau, geen codewijziging.
- KV blijft globaal, edge-replicatie is de kern van de <50ms redirect-garantie. Als single-region KV een harde vereiste is, neem contact op; we kunnen beoordelen of een regionale Worker-variant haalbaar is voor jouw campagne.
De prijs voor de single-region add-on is een vast tarief (geen toeslag per gebruiker) en hangt af van de specifieke combinatie. Mail enterprise@abundera.ai met je doeljurisdictie + verwacht scanvolume en we maken een offerte.
Compliancehouding
- GDPR, minimale data als ontwerp (alleen land + apparaatklasse, geen IP, geen UA, geen cookies), plus export met één klik en hard-delete in 30 dagen. DPA + EU SCC's beschikbaar voor alle betalende tiers.
- CCPA, gedekt door hetzelfde export + verwijder-oppervlak. "Verkoop van data" doen wij niet: geen deling met derden, geen advertentiepartners, geen retargeting.
- SSO + SCIM provisioning, SAML 2.0 + OIDC single sign-on en SCIM 2.0 gebruiker & groepslevenscyclus (Agency + Custom Enterprise tiers). RFC 7643/7644 compliance geverifieerd (20/20 op de PingIdentity-afgeleide testsuite). Per-verbinding feature flag betekent dat SCIM standaard uit staat en per klant wordt ingeschakeld; rate-beperkt tot 50 RPS per token; audit-gelogd. Okta/Entra/JumpCloud werken vandaag als custom-SCIM apps terwijl partner-cataloguslistings in behandeling zijn.
- SOC 2 Type II, in scoping. Proces van 6-9 maanden. Als dit een harde vereiste voor je is, mail enterprise@abundera.ai; we kunnen de huidige status + verwachte tijdlijn delen.
- PCI-DSS, buiten ons directe bereik; betalingen volledig afgehandeld door Stripe (PCI Level 1 gecertificeerd).
Beveiligingsdisclosure
Kwetsbaarheid gevonden? Mail security@abundera.ai. Gecoördineerde disclosure: we bevestigen binnen 24u (werkdagen), triagen binnen 72u en stemmen een fix + disclosuretijdlijn af. Nog geen bug bounty-programma; we erkennen onderzoekers publiekelijk op abundera.ai/security/thanks/ zodra een fix is uitgebracht.