Korzen
Bot Protection

Widget su altri siti

Un widget che i tuoi clienti incorporano nei propri siti, come un modulo di prenotazione, un negozio o una biglietteria: il tag nel suo frame, il token che la tua pagina invia e quali domini contano.

Un widget gira su siti che non sono tuoi: i tuoi clienti incorporano il tuo modulo di prenotazione, il tuo negozio o la tua biglietteria nelle loro pagine. Bot Protection funziona anche lì, con tre cose da fare bene: dove gira il tag, come il token arriva al tuo server e quali domini conta il tuo piano.

In un frame sul tuo dominio (consigliato)

Servi il widget dal tuo dominio e lascia che i tuoi clienti lo incorporino in un <iframe>. Metti il tag nella pagina dentro il frame, come in qualsiasi tua pagina. Bot Protection vede allora il tuo dominio, qualunque sito lo incorpori: un dominio per il tuo piano, verificato come ogni altro (la tua home page ha il tag, oppure lo aggiungi nella pagina Set-up).

In un frame, i cookie della tua pagina sono di terze parti. Chrome, Edge e Firefox li tengono separati per ogni sito che ti incorpora, e Safari non ne tiene nessuno. Quindi lì non contare sul cookie _kz: prima dell'azione protetta, prendi il token dal tag e invialo tu.

const token = await window.korzen?.ready();
await fetch("/api/book", {
  method: "POST",
  headers: { "content-type": "application/json", "x-korzen-token": token || "" },
  body: JSON.stringify(order),
});

Sul tuo server, passa quell'header alla chiamata come suo token, prima del cookie:

const input = fromNodeRequest(req, { ip: (_get, r) => r.ip, path: "/api/book" });
input.token = req.get("x-korzen-token") || input.token;
const decision = await korzen.decide(input);

Ogni SDK e la chiamata dal tuo server accettano un campo token allo stesso modo. Anche lo storage di un frame è separato per sito, quindi lo stesso visitatore su due siti dei tuoi clienti è due dispositivi per Bot Protection. È un segnale assente, mai prova di un bot.

La pagina di challenge e i frame

La pagina di challenge rimanda indietro il visitatore con un cookie che un frame non tiene. Dentro un frame, rispondi a challenge con un tuo passaggio (il tuo CAPTCHA, una verifica via email o telefono) e lascia require_token fuori dalle azioni del frame. Vedi monitor mode e block mode per cosa significa ogni azione.

Uno script nella pagina del tuo cliente

Un widget che è uno script che i tuoi clienti incollano, senza frame, gira nella loro pagina. Allora il tag gira sul loro dominio, ogni dominio dei tuoi clienti conta nel tuo piano, e le loro pagine devono avere il tag con la tua site key. Il tuo script chiama il tuo server da un'altra origine, dove i cookie non vengono inviati: invia il token nell'header come sopra e consenti x-korzen-token nella tua risposta CORS.

Gli hostname dei tuoi clienti

Un hostname che il tuo cliente punta verso di te (tickets.ilsuonegozio.it, un CNAME) è il suo dominio: conta come uno dei domini del tuo piano, come lo script sopra. I piani proteggono fino a cinque domini; con più hostname dei tuoi clienti, servi il widget in un frame sul tuo dominio, oppure scrivici.