In dieser Case Study geben wir Einblicke hinter die Kulissen eine Recruiting Plattform, im Besonderen aber über 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 per Echtzeit-Volltextsuche oder Social-Media-Postings. Kunden zahlen pro vollständig validierten “Klick”.
Ein “Klick” stellt also die Währung auf der Platform dar. Der Validierungsprozess ist komplex und mehrstufig um Betrug zu unterbinden.
Umfangreiche Analysen - aber hochskalierbar
Die Platform 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 unvalidierter “Klicks” und beliebig vielen Validierungsprozessen. Die übliche Zeitspanne zwischen dem Klick eines Nutzers zu der vollständig durchgeführten Validierung dauert ü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 Linkvorschauen unterschiedlichster Plattformen oder Jobsuchende. In den verschiedensten Schritten wird präzise zwischen abrechnungsfähigen “Klicks” durch einen Menschen und künstlich generierten differenziert. Zudem wird sichergestellt, dass ein eingestellter Job ausreichend Budget übrig hat. Sollte dem so nicht sein, wird der Job von der Platform aus der Suche entfernt und nicht weiter beworben.
Grundsä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 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 der des dahinterliegenden Nutzers.
Proxys und IP-Adresse von Rechenzentren werden für den nächsten Schritt herausgefiltert.
Rate Limits
Die Platform nutzt verschiedene Rate Limits. Ein Rate Limiting kontrolliert die Rate 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 erstellende 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, welcher der Browser bei jedem Webseitenaufruf mitschickt. Üblicherweise beinhaltet er Informationen wie das verwendete Betriebsystem und den verwendeten Browser3. Auch geben freundliche Bots und Crawler im User-Agent klar wieder, dass sie automatisierte Anfragen ausführen und 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 Platform kann bei Bedarf dynamisch skalieren und unterbindet über verschiedenste Validierungsschritte sicher, dass künstlich oder böswillig generierte “Klicks” das Budget der Kunden mindert.