De tag is één script. Zet het in de <head> van elke pagina waar een beschermde actie begint: de registratiepagina, de inlogpagina, de checkout.
<script src="https://korzen.dev/v1/tag.js" data-site-key="YOUR_SITE_KEY" async></script>
Het laadt asynchroon en houdt de pagina nooit op. Het kijkt hoe de browser zich gedraagt (invoer, timing, wat de browser over zichzelf zegt), stuurt dat naar Bot Protection, en bewaart het antwoord als de _kz-cookie op je domein. Je server leest die cookie en stuurt hem mee met de beslissing.
Je domeinen
Er valt niets in te vullen: zet de tag op je pagina's, en Bot Protection leert je domeinen uit de beacons ervan en de aanroepen van je server. Een domein komt onder Je domeinen, op de pagina Set-up, bij de eerste beslissing die je server vraagt over een bezoeker van een van zijn pagina's die geen bot is. Een domein telt met alle subdomeinen eronder: shop.example, www.shop.example en app.shop.example zijn één domein in je abonnement. Pagina's op localhost, 127.0.0.1 of [::1] werken altijd, om te testen, en staan nooit in de lijst. Je abonnement bepaalt hoeveel domeinen beschermd zijn: de eerst geziene, tot dat aantal. Beacons van een pagina op elk ander domein worden geweigerd met 402 totdat je een domein verwijdert op de Set-up-pagina of een groter abonnement kiest; verwijder daar ook een domein dat niet van jou is, zoals een kopie van je site. Tijdens de gratis proefperiode krijgt elk domein één gratis proefperiode: beacons van een domein dat zijn gratis proefperiode al in een ander account had, worden geweigerd met 402 totdat je een abonnement kiest.
Vóór de actie
Wacht vóór elke beschermde actie op de tag en verstuur dan het formulier:
await window.korzen?.ready();
Hij meldt wat de bezoeker deed sinds de tag het laatst meldde: wie op de pagina wacht, de browser het formulier laat invullen en op Enter drukt, deed dat allemaal na die melding. Dit is binnen een paar seconden klaar, ook als Bot Protection traag of geblokkeerd is, zodat een formulier nooit vastloopt. Een formulier dat de browser zonder je JavaScript verstuurt, wordt gemeld terwijl de pagina wordt verlaten; dat bereikt Bot Protection meestal, niet altijd, voordat je server het vraagt.
Opties
| Attribuut | Standaard | Wat het doet |
|---|---|---|
data-site-key | verplicht | je openbare site key |
data-wait-ms | 2500 | hoe lang de tag naar invoer luistert voordat hij rapporteert |
data-ready-ms | 2000 | hoeveel langer korzen.ready() mag wachten |
Bot Protection merkt de tag zelf op: zodra een van je beslissingen het token van de tag meestuurt, telt een beslissing zonder _kz-cookie als zwak bewijs van een bot. Tot die tijd telt een ontbrekend token niet mee.
Content Security Policy
Een pagina met de header Content-Security-Policy moet de tag laten laden, laten melden en zijn worker laten starten. Voeg deze bronnen toe aan de directives die je policy al heeft:
script-src https://korzen.dev; connect-src https://korzen.dev; worker-src blob:
Zonder worker-src blob: werkt de tag nog steeds en komt elke bezoeker door: Bot Protection verliest alleen één signaal. Een pagina zonder de header heeft niets nodig.
Je privacyverklaring
Jij bent de verwerkingsverantwoordelijke voor wat de tag op je pagina's leest, en Korzen is je verwerker, onder de verwerkersovereenkomst, die de gegevens opsomt en hoe lang elk wordt bewaard. Een zin die je privacyverklaring kan gebruiken:
“Om aanmeldingen, inlogs en betalingen tegen bots en fraude te beschermen, gebruiken onze pagina's Korzen Bot Protection. Het leest technische kenmerken van je browser en hoe je de pagina gebruikt, nooit wat je typt, en bewaart een willekeurige identificator van je browser zodat een browser die terugkomt wordt herkend. We doen dit vanuit ons gerechtvaardigd belang bij het voorkomen van fraude (overweging 47 AVG).”
Onder de ePrivacy-regels van de EU kunnen de cookie _kz en de local storage van de tag strikt noodzakelijk zijn voor de actie waar de bezoeker om vroeg; dat beslis je met je adviseurs, of je vraagt om toestemming (het cookiebeleid somt elk item op). Een actie die je met require_token markeert, stuurt een bezoeker zonder geldig token naar de challengepagina van Korzen, die de eigen tag van Korzen draait: sectie 2 van de verwerkersovereenkomst zegt wat dat betekent.