Echtzeitanalyse von Besucherströmen

Beschreibung zum kostenlosen Online Marketing Webinar

Die Besucher einer Webseite, sind deine potenziellen Kunden, Interessenten aber auch Mitbewerber.

Jeder nutzt Personas um Inhalte auf bestimmte Zielgruppen auszurichten, aber wie Messe ich, ob der Traffic den Vorgaben entspricht.

Die Unterscheidung von guten und schlechten Traffic ist der Schlüssel für aussagekräftige Analysen und Conversion Reports und bietet die Möglichkeit neue Erkenntnisse zu gewinnen.

 

Webinar Termin:

28.06.2017

09:00 Uhr - 10:00 Uhr

Was Du nach dem Webinar gelernt hast:

  • welche Tools kann ich benutzen, um kurzfristig neue Erkenntnisse zu sammeln

Zielgruppe:

Techies, Personen, die ihren Traffic besser verstehen wollen

Webinar Termin:

28.06.2017

09:00 Uhr - 10:00 Uhr

Echtzeitanalyse von Besucherströmen

Dies ist eine schriftliche Zusammenfassung des Webinars „Echtzeitanalyse von Besucherströmen“ von Jens Altmann.

Das Webinar zeigt auf, warum es sinnvoll ist, sich mit der Echtzeitanalyse von Besucherströmen auseinanderzusetzen und wie man selbst eine solche Analyse implementiert.

Jens Altmann ist seit 15 Jahren professioneller Software Engineer. Das bedeutet, dass er an der Entwicklung und Konzeption von neuer Software beteiligt ist. Er arbeitet sowohl für Unternehmen als auch als Freelancer. Sich selbst bezeichnet er gerne als Techie, womit er meint, dass er sich mit Technik aus Leidenschaft beschäftigt. Außerdem ist er CTO, also Technischer Direktor, bei dem Berliner Start-up Paranoia.io und beschäftigt sich dort insbesondere mit dem Thema Sicherheit. So hilft er Websites, die selbst nicht die passenden technischen Hilfsmittel besitzen, um hier eigene hochwertige Lösungen zu finden.

Das Internet wird immer langsamer

Um die heutigen Ausmaße des Internets zu verstehen, ist die Zahl 1.000.000.000.000.000.000.000 (1021¬) hilfreich. Sie entspricht einem Zettabyte. Das ist die Menge Daten, die jährlich im Internet als Traffic transportiert wird. Würde man sie in eine geläufigere Einheit umwandeln, käme man auf eine Milliarde Terabyte. Die Zahl stammt aus dem Jahr 2016. Man merkt also, dass es im Internet immer mehr Nutzer gibt, die das Netz natürlich auch immer mehr verlangsamen. Zwar wird auch die Infrastruktur dauernd erweitert, allerdings kann sie dabei nicht mit dem Zuwachs der User mithalten.
Im Jahr 2012 lag die transferierte Datenmenge noch bei einem sehr viel niedrigeren Wert von 0,25 Zettabyte. Bis 2020 geht man von einer Steigerung auf 2,6-2,7 Zettabyte aus. Das dürfte zu einer weiteren Verlangsamung führen.

Busy Hour Traffic

Wie man sich unschwer denken kann, gibt es auf der Erde bestimmte Orte, an denen das Internet besonders intensiv genutzt wird. Außerdem gibt es in der Fachsprache inzwischen den Begriff „Busy Hour Traffic“, der die Belastung in besonders aktiven Zeiträumen bezeichnet. Meist sind hier die späten Nachmittags- und Abendstunden gemeint.
Ein Problem ist es, das viele Daten, die über das Internet gesendet werden, gar nicht mehr die Informationen enthalten, für die das Internet ursprünglich gedacht war, sondern über 50 % durch Video Traffic erzeugt werden. Dieser Trend soll bis 2020 sogar auf einen Wert von 75 % ansteigen. Das bedeutet, dass der Anteil der Websitenaufrufe 2020 sehr gering sein wird.

Anzahl der Internetseiten

Derzeit gibt es ungefähr eine Milliarde Internetseiten. Diese Milliarde wird 2020 die verbleibenden 25 % des Traffics unter sich aufteilen müssen. Allerdings sind nur ungefähr 50 % des Traffics auf menschliche Personen zurückzuführen. 20 % entfallen auf sogenannte „Good Bots“ und 30 % auf „Bad Bots“. „Good Bots“ („Gute Roboter“) versorgen die Nutzer mit Informationen wie Nachrichten oder ermöglichen sogar erst, dass das Internet in der vorhandenen Größe überhaupt genutzt werden kann. „Bad Bots“ („Schlechte Roboter“) versuchen die Benutzer auszuspionieren oder generieren nicht vorhandene Werbeklicks. Außerdem gilt noch die Regel, dass kleinere Websites tendenziell weniger Human Traffic generieren. In der Kategorie von 10-1000 Besuchern pro Tag liegt dieser sogar nur bei 14 %.

Botklassifikation

Bei den „Good Bots“ gibt es vier wichtige Kategorien: Ungefähr die Hälfte der „Good Bots“ sind auf den Feed spezialisiert. Sie prüfen zum Beispiel, ob neue Inhalte auf der Website erschienen sind. Ein Viertel der „Guten“ entfällt auf die Search Engine Bots, die versuchen Inhalte der Websites zu analysieren und so der Masse, insbesondere über Suchmaschinen, zur Verfügung zu stellen. Der restliche Teil besteht aus Monitoring Bots und Commercial Crawlers. Die ersteren dienen zur Überwachung, während die Crawlers dafür zuständig sind, Marketing-Kampagnen zu analysieren oder Websites mit passender Werbung zu versehen.
Die bei weitem häufigste Kategorie der „Bad Bots“ sind die Impersonators (85 %). Diese hacken zum Beispiel Accounts, um sich dann als der Besitzer auszugeben. Ein relativ kleiner Anteil entfällt auf Scraper und Hacker Tools. Scraper versuchen, die Texte anderer Websites zu kopieren und zu modifizieren, um sie dann für die eigenen einzusetzen und so zusätzlichen Gewinn zu machen. Hacker Tools sind Programme die versuchen, Sicherheitslücken in Websites zu finden und diese auszunutzen. Kaum noch vorhanden sind Spammer, die extrem viel Werbung verbreiten, in dem sie zum Beispiel Links in öffentliche Foren einschleusen.

Conversions

Als Conversion bezeichnet man den Vorgang, im Laufe dessen der Besucher einer Website zum Kunden wird. Bots machen die Bewertung der Raten, mit der diese Conversions erfolgen, oft sehr schwierig. In der Analyse ist es nur schwer oder gar nicht möglich, die Bots von den richtigen Menschen zu unterscheiden. Das kann starke Abweichungen in Bezug auf die Conversion Rate zur Folge haben. Wenn man zum Beispiel ein Conversion Rate von 2 % errechnet hat und nun berücksichtigt, dass möglicherweise 60 % der Besucher auf der eigenen Website Bots waren, dann liegt die Conversion Rate plötzlich bei 5 %, was einen großen Unterschied darstellt.

Wie kann man den Bottraffic aber nun analysieren?

Um diese Frage zu beantworten, ist es eine gute Idee, sich die Website des Vortragenden Jens Altmann anzuschauen. Am 27.06.2017 hat er über seine Seite gefruckelt.de ungefähr 441 Megabyte Daten verschickt. Schaut man sich nun die Herkunft der Besucher an, dann stellt man fest, dass nur etwas weniger als 50 % von ihnen tatsächlich aus Deutschland kommen. Dafür ist der US-Anteil sehr hoch. Hier kann man zum Beispiel viele Bots vermuten, da unter anderem viele Google-Abfragen erfolgen, die natürlich alle aus den USA gesendet werden. Die Seite, über die man diese Informationen abfragen kann, heißt ipinfo.io. Hier hat man allerdings jeden Tag nur 1000 Abfragen frei. Will man die Standortabfrage selbst hosten, kann man dies mit Hilfe des Open Source Projektes Free GeoIP tun. Auch die Registrare, die man über die Informationsseite von IP abfragen kann, geben viel Aufschluss. Wenn Firmen wie Amazon oder Hetzner dahinterstecken, dann kann man sich auch hier ziemlich sicher sein, dass es sich um Bots handelt, die in den Rechenzentren der jeweiligen Unternehmen aktiv sind.

„Echte“ Besucher

Früher konnte man „echte“ Besucher relativ einfach erkennen. Wenn sie zum Beispiel Browser wie Mozilla Firefox, Google Chrome oder Safari verwendeten, dann handelte es sich mit sehr hoher Wahrscheinlichkeit um Menschen. Außerdem konnte man überprüfen, ob das Java-Script aktiviert war, da damals kein Bot Java-Script verwendete.
Heute ist das Problem deutlich komplexer. Will man zu entsprechenden Erkenntnissen kommen, dann muss man berücksichtigen, dass Tools wie PhantomJS und Selenium es heute ermöglichen, Browser wie Firefox vollständig zu emulieren oder die Benutzung von Java-Script vorzutäuschen.
Auch Virtualisierungen, die Automatisierungen herbeiführen, machen die Erkennung schwer. Zum Beispiel kann so ein Bot den Firefox Browser öffnen und seine Funktionen anwenden, um als Mensch klassifiziert zu werden.

Boterkennung

Es gibt viele verschiedene Möglichkeiten Bots zu enttarnen. Zum Beispiel kann man sich die User Agents anschauen. Wenn der User Agent zwei Jahre alt ist, dann handelt es sich mit Sicherheit um einen Bot. Auch Referrer können Aufschluss geben. Wenn der Bot angibt, über eine Seite, die gar nicht existiert, auf die aktuelle Website gekommen zu sein, dann fliegt er auch auf. Ein weiteres Erkennungsmerkmal für Bots sind sehr kurzintervallige Zugriffe. Kein Mensch springt im Milisekundentakt zwischen den Websites hin und her. Auch die Hostnames können die Bots kennzeichnen. Wenn eine Abfrage von einem Internetprovider wie Telekom kommt, dann handelt es sich wahrscheinlich auch um einen Bot. Wenn man überprüft ob Ressourcen, wie zum Beispiel Bilder und Animationen, vom Browser auf der Website nachgeladen werden, lassen sich Bots auch identifizieren, denn wenn der Bot nur sehr kurz auf die Seite zugreift, dann wird auch nichts nachgeladen. Weitere Merkmale sind atypische Statuscodes und ungewöhnliche Header. Durch alle diese Verfahren lassen sich sogenannte Thrashholes generieren, in denen die Bots landen.
Eine sehr schöne Möglichkeit zur Boterkennung liefert die Funktion getBrowser() der Programmiersprache PHP. Diese ist standardmäßig nur rudimentär implementiert, was die Klassifizierung nur halbwegs gut funktionieren lässt.
Die Funktion basiert auf der Datei browscape.ini. Browser.org ist eine OpenSource-Community in der einfach alle User Agent Strings, die irgendwo mal aufgetaucht sind, aufgelistet und klassifiziert werden. Die Datei browscap.ini überprüft dann den User Agent String des jeweiligen Besuchers und findet über die Klassifizierung raus, ob es sich um einen Menschen oder um einen Bot handelt. Zumindest für die Standarderkennung funktioniert diese Methode sehr gut.
Damit die Browscape-Datei auch funktioniert, muss man in seiner Serverdatei die php.ini aufrufen. Dort gibt es dann die browscap, bei der man einfach die Adresse seiner Browscape-Datei hinterlegt. Danach kann man dann mit Hilfe der Funktion getBrowser auf die Datei zugreifen und sie für die Analyse verwenden. Wenn man nun jeden Besucher als erstes mit dieser Methode überprüft, dann kann man entscheiden, ob man ihn die Website laden lässt oder, falls es sich um einen Bot handelt, ihm einfach eine 404-Fehlermeldung zukommen lässt, um ihm zu signalisieren, dass er auf der Seite nicht erwünscht ist.

Fingerprints vs. Footprints

Der Unterschied zwischen Fingerprints und Footprints besteht darin, dass Fingerprints eine eindeutige Identifikation ermöglichen, während Footprints für die Einteilung in Gruppen, also die Klassifikation, nützlich sind. Der User Agent ist also eher ein Footprint, da er nur eine grobe Einteilung der Benutzer zulässt.

Footprints

In Bezug auf Footprints ist es relativ interessant, zu betrachten, wie Browser überhaupt arbeiten. Wenn man mit dem Chrome und dem Firefox Browser eine Internetseite aufruft, dann fallen einem einige Unterschiede auf.
Bekanntlich wird, wenn man eine Internetseite aufruft, als erstes ein Header-Bereich gesendet, der dem Server mitteilt welche URL aufgerufen werden soll und welche Daten man erwartet. Daraufhin bekommt man eine Antwort des Servers, die die HTML-Seite beinhaltet, welche wiederum vom Browser gerendert, also zur Darstellung vorbereitet wird. Was einem bei Google Chrome und Mozilla Firefox nun auffällt ist, dass die einzelnen Header-Attribute an unterschiedlichen Positionen zu finden sind und auch verschiedene zusätzliche Informationen enthalten.
Bei Google Chrome findet man zum Beispiel das Accept vom image/webp, weil Chrome bzw. Google das Imageformat WebP definiert hat und dieses natürlich unterstützt und der Browser es somit auch verwenden kann. Bei anderen Browsern ist diese Unterstützung nicht gegeben. Das bedeutet das man voraussetzen kann, dass bei Chrome dieses Accept zu finden ist. Falls es nicht vorhanden sein sollte, dann kann man davon ausgehen, dass jemand versucht, einem über den User Agent falsche Informationen zuzuspielen und einen Chrome Browser vorzutäuschen.
Was auch auffällt ist, dass bei Firefox der Connection-Header ganz am Ende steht, während er sich bei Chrome ganz am Anfang befindet.
Genau die gleiche Analyse kann man auch auf Phantom JS anwenden. PhantomJS gibt einem die Möglichkeit den User Agent zu manipulieren. Hier fallen einem Unterschiede zwischen der Version 1.9 und der Version 2.1.1 auf. Zum Beispiel wird bei der Version 2.1.1 erst der User Agent-Header und dann der Accept gesendet, während bei der Version 1.9 erst der Accept und dann der User Agent gesendet wird.
Stellt man sich solche Informationen für genügend verschiedene Browser zusammen, dann lässt sich eine Matrix mit bestimmten Eigenschaften erstellen. Diese hilft einem dann dabei, die verschiedenen Browser und Täuschungen zu identifizieren. Zum Beispiel steht der Host bei Google Chrome und Mozilla Firefox am Anfang, während er bei PhantomJS 1.9 und 2.1.1 am Ende zu verorten ist. Das ermöglicht eine relativ einfache Unterscheidung. Somit wird man schwerlich manipuliert werden können.

Fazit

Das Erkennen und Abweisen von Bots ist mit relativ einfachen Mitteln möglich. Am Beispiel von Jens Altmanns Website gefruckelt.de konnte man ja schon sehen, dass er an einem Tag einen Datentraffic von 441 Megabyte bewältigen musste. Würde er die Bots abweisen, könnte er also ungefähr 220 Megabyte einsparen. Überträgt man das ganze Prinzip nun auf die Website eines größeren Unternehmens, dann wird offensichtlich, dass diese Einsparungen immense Vorteile bieten. Erstens würde es dadurch möglich werden, sehr viel Kosten einzusparen, da weniger Rechenleistung gebraucht wird, wenn die Anfragen der Bots nicht mehr erfüllt werden müssen. Und zweitens könnte man den Usern eine sehr viel erfreulichere Erfahrung auf der eigenen Website bieten, da durch das Abweisen der Bots die Anfragen der menschlichen Nutzer schneller bearbeitet werden würden. Es ist nicht sinnvoll, die Zahl der Server mit hohem Geldaufwand zu vergrößern, wenn man alternativ auch einfach die Bots abweisen kann.

Falls man noch Fragen an Jens Altmann hat kann man ihn auch noch über Facebook oder über Twitter unter gefruckelt.de anschreiben.

Echtzeitanalyse von Besucherströmen

Dies ist eine schriftliche Zusammenfassung des Webinars „Echtzeitanalyse von Besucherströmen“ von Jens Altmann.

Das Webinar zeigt auf, warum es sinnvoll ist, sich mit der Echtzeitanalyse von Besucherströmen auseinanderzusetzen und wie man selbst eine solche Analyse implementiert.

Jens Altmann ist seit 15 Jahren professioneller Software Engineer. Das bedeutet, dass er an der Entwicklung und Konzeption von neuer Software beteiligt ist. Er arbeitet sowohl für Unternehmen als auch als Freelancer. Sich selbst bezeichnet er gerne als Techie, womit er meint, dass er sich mit Technik aus Leidenschaft beschäftigt. Außerdem ist er CTO, also Technischer Direktor, bei dem Berliner Start-up Paranoia.io und beschäftigt sich dort insbesondere mit dem Thema Sicherheit. So hilft er Websites, die selbst nicht die passenden technischen Hilfsmittel besitzen, um hier eigene hochwertige Lösungen zu finden.

Das Internet wird immer langsamer

Um die heutigen Ausmaße des Internets zu verstehen, ist die Zahl 1.000.000.000.000.000.000.000 (1021¬) hilfreich. Sie entspricht einem Zettabyte. Das ist die Menge Daten, die jährlich im Internet als Traffic transportiert wird. Würde man sie in eine geläufigere Einheit umwandeln, käme man auf eine Milliarde Terabyte. Die Zahl stammt aus dem Jahr 2016. Man merkt also, dass es im Internet immer mehr Nutzer gibt, die das Netz natürlich auch immer mehr verlangsamen. Zwar wird auch die Infrastruktur dauernd erweitert, allerdings kann sie dabei nicht mit dem Zuwachs der User mithalten.
Im Jahr 2012 lag die transferierte Datenmenge noch bei einem sehr viel niedrigeren Wert von 0,25 Zettabyte. Bis 2020 geht man von einer Steigerung auf 2,6-2,7 Zettabyte aus. Das dürfte zu einer weiteren Verlangsamung führen.

Busy Hour Traffic

Wie man sich unschwer denken kann, gibt es auf der Erde bestimmte Orte, an denen das Internet besonders intensiv genutzt wird. Außerdem gibt es in der Fachsprache inzwischen den Begriff „Busy Hour Traffic“, der die Belastung in besonders aktiven Zeiträumen bezeichnet. Meist sind hier die späten Nachmittags- und Abendstunden gemeint.
Ein Problem ist es, das viele Daten, die über das Internet gesendet werden, gar nicht mehr die Informationen enthalten, für die das Internet ursprünglich gedacht war, sondern über 50 % durch Video Traffic erzeugt werden. Dieser Trend soll bis 2020 sogar auf einen Wert von 75 % ansteigen. Das bedeutet, dass der Anteil der Websitenaufrufe 2020 sehr gering sein wird.

Anzahl der Internetseiten

Derzeit gibt es ungefähr eine Milliarde Internetseiten. Diese Milliarde wird 2020 die verbleibenden 25 % des Traffics unter sich aufteilen müssen. Allerdings sind nur ungefähr 50 % des Traffics auf menschliche Personen zurückzuführen. 20 % entfallen auf sogenannte „Good Bots“ und 30 % auf „Bad Bots“. „Good Bots“ („Gute Roboter“) versorgen die Nutzer mit Informationen wie Nachrichten oder ermöglichen sogar erst, dass das Internet in der vorhandenen Größe überhaupt genutzt werden kann. „Bad Bots“ („Schlechte Roboter“) versuchen die Benutzer auszuspionieren oder generieren nicht vorhandene Werbeklicks. Außerdem gilt noch die Regel, dass kleinere Websites tendenziell weniger Human Traffic generieren. In der Kategorie von 10-1000 Besuchern pro Tag liegt dieser sogar nur bei 14 %.

Botklassifikation

Bei den „Good Bots“ gibt es vier wichtige Kategorien: Ungefähr die Hälfte der „Good Bots“ sind auf den Feed spezialisiert. Sie prüfen zum Beispiel, ob neue Inhalte auf der Website erschienen sind. Ein Viertel der „Guten“ entfällt auf die Search Engine Bots, die versuchen Inhalte der Websites zu analysieren und so der Masse, insbesondere über Suchmaschinen, zur Verfügung zu stellen. Der restliche Teil besteht aus Monitoring Bots und Commercial Crawlers. Die ersteren dienen zur Überwachung, während die Crawlers dafür zuständig sind, Marketing-Kampagnen zu analysieren oder Websites mit passender Werbung zu versehen.
Die bei weitem häufigste Kategorie der „Bad Bots“ sind die Impersonators (85 %). Diese hacken zum Beispiel Accounts, um sich dann als der Besitzer auszugeben. Ein relativ kleiner Anteil entfällt auf Scraper und Hacker Tools. Scraper versuchen, die Texte anderer Websites zu kopieren und zu modifizieren, um sie dann für die eigenen einzusetzen und so zusätzlichen Gewinn zu machen. Hacker Tools sind Programme die versuchen, Sicherheitslücken in Websites zu finden und diese auszunutzen. Kaum noch vorhanden sind Spammer, die extrem viel Werbung verbreiten, in dem sie zum Beispiel Links in öffentliche Foren einschleusen.

Conversions

Als Conversion bezeichnet man den Vorgang, im Laufe dessen der Besucher einer Website zum Kunden wird. Bots machen die Bewertung der Raten, mit der diese Conversions erfolgen, oft sehr schwierig. In der Analyse ist es nur schwer oder gar nicht möglich, die Bots von den richtigen Menschen zu unterscheiden. Das kann starke Abweichungen in Bezug auf die Conversion Rate zur Folge haben. Wenn man zum Beispiel ein Conversion Rate von 2 % errechnet hat und nun berücksichtigt, dass möglicherweise 60 % der Besucher auf der eigenen Website Bots waren, dann liegt die Conversion Rate plötzlich bei 5 %, was einen großen Unterschied darstellt.

Wie kann man den Bottraffic aber nun analysieren?

Um diese Frage zu beantworten, ist es eine gute Idee, sich die Website des Vortragenden Jens Altmann anzuschauen. Am 27.06.2017 hat er über seine Seite gefruckelt.de ungefähr 441 Megabyte Daten verschickt. Schaut man sich nun die Herkunft der Besucher an, dann stellt man fest, dass nur etwas weniger als 50 % von ihnen tatsächlich aus Deutschland kommen. Dafür ist der US-Anteil sehr hoch. Hier kann man zum Beispiel viele Bots vermuten, da unter anderem viele Google-Abfragen erfolgen, die natürlich alle aus den USA gesendet werden. Die Seite, über die man diese Informationen abfragen kann, heißt ipinfo.io. Hier hat man allerdings jeden Tag nur 1000 Abfragen frei. Will man die Standortabfrage selbst hosten, kann man dies mit Hilfe des Open Source Projektes Free GeoIP tun. Auch die Registrare, die man über die Informationsseite von IP abfragen kann, geben viel Aufschluss. Wenn Firmen wie Amazon oder Hetzner dahinterstecken, dann kann man sich auch hier ziemlich sicher sein, dass es sich um Bots handelt, die in den Rechenzentren der jeweiligen Unternehmen aktiv sind.

„Echte“ Besucher

Früher konnte man „echte“ Besucher relativ einfach erkennen. Wenn sie zum Beispiel Browser wie Mozilla Firefox, Google Chrome oder Safari verwendeten, dann handelte es sich mit sehr hoher Wahrscheinlichkeit um Menschen. Außerdem konnte man überprüfen, ob das Java-Script aktiviert war, da damals kein Bot Java-Script verwendete.
Heute ist das Problem deutlich komplexer. Will man zu entsprechenden Erkenntnissen kommen, dann muss man berücksichtigen, dass Tools wie PhantomJS und Selenium es heute ermöglichen, Browser wie Firefox vollständig zu emulieren oder die Benutzung von Java-Script vorzutäuschen.
Auch Virtualisierungen, die Automatisierungen herbeiführen, machen die Erkennung schwer. Zum Beispiel kann so ein Bot den Firefox Browser öffnen und seine Funktionen anwenden, um als Mensch klassifiziert zu werden.

Boterkennung

Es gibt viele verschiedene Möglichkeiten Bots zu enttarnen. Zum Beispiel kann man sich die User Agents anschauen. Wenn der User Agent zwei Jahre alt ist, dann handelt es sich mit Sicherheit um einen Bot. Auch Referrer können Aufschluss geben. Wenn der Bot angibt, über eine Seite, die gar nicht existiert, auf die aktuelle Website gekommen zu sein, dann fliegt er auch auf. Ein weiteres Erkennungsmerkmal für Bots sind sehr kurzintervallige Zugriffe. Kein Mensch springt im Milisekundentakt zwischen den Websites hin und her. Auch die Hostnames können die Bots kennzeichnen. Wenn eine Abfrage von einem Internetprovider wie Telekom kommt, dann handelt es sich wahrscheinlich auch um einen Bot. Wenn man überprüft ob Ressourcen, wie zum Beispiel Bilder und Animationen, vom Browser auf der Website nachgeladen werden, lassen sich Bots auch identifizieren, denn wenn der Bot nur sehr kurz auf die Seite zugreift, dann wird auch nichts nachgeladen. Weitere Merkmale sind atypische Statuscodes und ungewöhnliche Header. Durch alle diese Verfahren lassen sich sogenannte Thrashholes generieren, in denen die Bots landen.
Eine sehr schöne Möglichkeit zur Boterkennung liefert die Funktion getBrowser() der Programmiersprache PHP. Diese ist standardmäßig nur rudimentär implementiert, was die Klassifizierung nur halbwegs gut funktionieren lässt.
Die Funktion basiert auf der Datei browscape.ini. Browser.org ist eine OpenSource-Community in der einfach alle User Agent Strings, die irgendwo mal aufgetaucht sind, aufgelistet und klassifiziert werden. Die Datei browscap.ini überprüft dann den User Agent String des jeweiligen Besuchers und findet über die Klassifizierung raus, ob es sich um einen Menschen oder um einen Bot handelt. Zumindest für die Standarderkennung funktioniert diese Methode sehr gut.
Damit die Browscape-Datei auch funktioniert, muss man in seiner Serverdatei die php.ini aufrufen. Dort gibt es dann die browscap, bei der man einfach die Adresse seiner Browscape-Datei hinterlegt. Danach kann man dann mit Hilfe der Funktion getBrowser auf die Datei zugreifen und sie für die Analyse verwenden. Wenn man nun jeden Besucher als erstes mit dieser Methode überprüft, dann kann man entscheiden, ob man ihn die Website laden lässt oder, falls es sich um einen Bot handelt, ihm einfach eine 404-Fehlermeldung zukommen lässt, um ihm zu signalisieren, dass er auf der Seite nicht erwünscht ist.

Fingerprints vs. Footprints

Der Unterschied zwischen Fingerprints und Footprints besteht darin, dass Fingerprints eine eindeutige Identifikation ermöglichen, während Footprints für die Einteilung in Gruppen, also die Klassifikation, nützlich sind. Der User Agent ist also eher ein Footprint, da er nur eine grobe Einteilung der Benutzer zulässt.

Footprints

In Bezug auf Footprints ist es relativ interessant, zu betrachten, wie Browser überhaupt arbeiten. Wenn man mit dem Chrome und dem Firefox Browser eine Internetseite aufruft, dann fallen einem einige Unterschiede auf.
Bekanntlich wird, wenn man eine Internetseite aufruft, als erstes ein Header-Bereich gesendet, der dem Server mitteilt welche URL aufgerufen werden soll und welche Daten man erwartet. Daraufhin bekommt man eine Antwort des Servers, die die HTML-Seite beinhaltet, welche wiederum vom Browser gerendert, also zur Darstellung vorbereitet wird. Was einem bei Google Chrome und Mozilla Firefox nun auffällt ist, dass die einzelnen Header-Attribute an unterschiedlichen Positionen zu finden sind und auch verschiedene zusätzliche Informationen enthalten.
Bei Google Chrome findet man zum Beispiel das Accept vom image/webp, weil Chrome bzw. Google das Imageformat WebP definiert hat und dieses natürlich unterstützt und der Browser es somit auch verwenden kann. Bei anderen Browsern ist diese Unterstützung nicht gegeben. Das bedeutet das man voraussetzen kann, dass bei Chrome dieses Accept zu finden ist. Falls es nicht vorhanden sein sollte, dann kann man davon ausgehen, dass jemand versucht, einem über den User Agent falsche Informationen zuzuspielen und einen Chrome Browser vorzutäuschen.
Was auch auffällt ist, dass bei Firefox der Connection-Header ganz am Ende steht, während er sich bei Chrome ganz am Anfang befindet.
Genau die gleiche Analyse kann man auch auf Phantom JS anwenden. PhantomJS gibt einem die Möglichkeit den User Agent zu manipulieren. Hier fallen einem Unterschiede zwischen der Version 1.9 und der Version 2.1.1 auf. Zum Beispiel wird bei der Version 2.1.1 erst der User Agent-Header und dann der Accept gesendet, während bei der Version 1.9 erst der Accept und dann der User Agent gesendet wird.
Stellt man sich solche Informationen für genügend verschiedene Browser zusammen, dann lässt sich eine Matrix mit bestimmten Eigenschaften erstellen. Diese hilft einem dann dabei, die verschiedenen Browser und Täuschungen zu identifizieren. Zum Beispiel steht der Host bei Google Chrome und Mozilla Firefox am Anfang, während er bei PhantomJS 1.9 und 2.1.1 am Ende zu verorten ist. Das ermöglicht eine relativ einfache Unterscheidung. Somit wird man schwerlich manipuliert werden können.

Fazit

Das Erkennen und Abweisen von Bots ist mit relativ einfachen Mitteln möglich. Am Beispiel von Jens Altmanns Website gefruckelt.de konnte man ja schon sehen, dass er an einem Tag einen Datentraffic von 441 Megabyte bewältigen musste. Würde er die Bots abweisen, könnte er also ungefähr 220 Megabyte einsparen. Überträgt man das ganze Prinzip nun auf die Website eines größeren Unternehmens, dann wird offensichtlich, dass diese Einsparungen immense Vorteile bieten. Erstens würde es dadurch möglich werden, sehr viel Kosten einzusparen, da weniger Rechenleistung gebraucht wird, wenn die Anfragen der Bots nicht mehr erfüllt werden müssen. Und zweitens könnte man den Usern eine sehr viel erfreulichere Erfahrung auf der eigenen Website bieten, da durch das Abweisen der Bots die Anfragen der menschlichen Nutzer schneller bearbeitet werden würden. Es ist nicht sinnvoll, die Zahl der Server mit hohem Geldaufwand zu vergrößern, wenn man alternativ auch einfach die Bots abweisen kann.

Falls man noch Fragen an Jens Altmann hat kann man ihn auch noch über Facebook oder über Twitter unter gefruckelt.de anschreiben.