In dieser Case Study geben wir Einblicke hinter die Kulissen einer Recruiting-Plattform – insbesondere aber in Schutzmaßnahmen gegen Betrug, Crawler und Bots.
Was ist ein Klick?
Es handelt sich um ein Jobboard, bei dem sowohl externe Plattformen als auch Direktkunden Jobs einstellen können. Bezahlt wird mit “Klicks”. Ein Klick entspricht dem Öffnen eines eingestellten Jobs durch einen Menschen. Auffindbar sind die eingestellten Jobs beispielsweise über eine Echtzeit-Volltextsuche oder Social-Media-Postings. Kunden zahlen pro vollständig validiertem “Klick”.
Ein “Klick” stellt also die Währung auf der Plattform dar. Der Validierungsprozess ist komplex und mehrstufig, um Betrug zu unterbinden.
Umfangreiche Analysen - aber hochskalierbar
Die Plattform erlebt mehrfach täglich Lastspitzen und kann bei Bedarf dynamisch skalieren.
Finally, I have a big number to share too! One of our customers just hit 1M requests this month!
— Alexander Zierhut (@zierhut_alex) September 19, 2021
Making a safer internet with Cloudflare: 1,095,645 SSL requests served in the last month! #cloudflare
Über 1 Million verschlüsselte Verbindungen alleine über das CDN in einem Monat.
Der “Click-Validator”, also jener Prozess, der sich ausschließlich um die Validierung der “Klicks” kümmert, ist ebenfalls skalierbar. Er stützt sich auf eine Warteschlange, einen Pool aller noch unvalidierten “Klicks” und beliebig viele Validierungsprozesse. Die Zeitspanne zwischen dem Klick eines Nutzers und der vollständig durchgeführten Validierung beträgt üblicherweise unter 10 Millisekunden.
Die grobe Architektur kann etwa wie folgt skizziert werden:
Prüfkriterien für abrechnungsfähigen Traffic
Egal ob DDoS-Angriff, freundliche Bots und Crawler wie Google oder Link-Vorschauen unterschiedlichster Plattformen oder echte Jobsuchende: In verschiedenen Schritten wird präzise zwischen abrechnungsfähigen “Klicks” durch einen Menschen und künstlich generierten unterschieden. Zudem wird sichergestellt, dass ein eingestellter Job ausreichend Budget übrig hat. Sollte dies nicht der Fall sein, wird der Job von der Plattform aus der Suche entfernt und nicht weiter beworben.
GGrundsätzlich werden folgende essenzielle Daten temporär erhoben:
- IP-Adresse des Nutzers
- Welcher Job (Job-ID)
- Nutzersession oder Nutzerkonto (optional)
Abgleich mit Firehol1
Firehol1 ist ein Service im Internet und bietet unter anderem Listen von Proxys und Rechenzentren.
Mit einer sogenannten Proxy ist es möglich, die wahre IP-Adresse zu verstecken oder zu verschleiern. Das Prinzip einer Proxy ist ähnlich zu einem VPN, zu dem wir bereits einen Artikel2 geschrieben haben. Ein böswilliger Nutzer kann auf unverhältnismäßig viele Proxys als Mittelstück zur Verschleierung zurückgreifen. Unsere Server sehen dann nur die IP-Adresse der Proxy, nicht aber die des dahinterliegenden Nutzers.
Proxys und IP-Adressen von Rechenzentren werden für den nächsten Schritt herausgefiltert.
Rate Limits
Die Plattform nutzt verschiedene Rate Limits. Ein Rate Limiting kontrolliert die Anzahl an Anfragen in einem festgelegten Zeitfenster:
- Falls eine IP-Adresse einen Job innerhalb von 4 Stunden mehrfach aufruft, wird das Budget durch diese IP-Adresse nur ein einziges Mal reduziert.
- Jeder Nutzer darf pro Stunde maximal 20 gültige “Klicks” generieren. Alle weiteren werden verworfen und nicht verrechnet.
- Pro Minute darf ein Nutzer maximal 2 gültige “Klicks” generieren. Alle weiteren werden verworfen und nicht verrechnet.
Angemeldeter Nutzer
Durch die integrierte Vorschaufunktion ist es dem Kunden möglich, das soeben erstellte oder noch ausstehende Jobangebot zu betrachten. Klicks auf die eigenen Jobs eines angemeldeten Nutzers werden verworfen und nicht verrechnet.
User-Agent
Der User-Agent ist ein zusätzliches Feld, das der Browser bei jedem Webseitenaufruf mitschickt. Üblicherweise beinhaltet er Informationen wie das verwendete Betriebssystem und den verwendeten Browser3. Auch geben freundliche Bots und Crawler im User-Agent klar an, dass sie automatisierte Anfragen ausführen und somit von Menschen zu unterscheiden sind.
Klicks geblockter User-Agents werden verworfen und nicht verrechnet.
Ungültige Sitzung
Aufrufe von Nutzern mit ungültiger Sitzung (Session) werden ebenfalls verworfen und nicht verrechnet.
Fazit
Die Plattform kann bei Bedarf dynamisch skalieren und verhindert durch verschiedene Validierungsschritte zuverlässig, dass künstlich oder böswillig generierte “Klicks” das Budget der Kunden mindern.