Das User Agent & Host Whitelisting-Modul ermöglicht es, bestimmte automatisierte oder auch ganz gezielt händisch ausgelöste Requests für dezidierte Zwecke zu steuern (Zwei-Faktor-Authentifizierung).
Dabei besteht das Modul aus zwei Einzelkomponenten, die jeweils allein oder in Kombination verwendet werden können, dem User Agent-Whitelisting sowie dem Host-Whitelisting.
Die Eingabeoberfläche in der Administration und die prinzipielle Funktionsweise ist dabei bei beiden Einzelfunktionen gleich, was die Einarbeitung erleichtert; zudem verfügen beide Funktionen über eine Variante dieses Textes, so dass ein umständliches Suchen in Dokumentationen nicht nötig ist, auch wenn diese Funktionen nur selten verwendet werden sollten. Dies entspricht dem didaktischen und praxisorientierten sozialinformatischen Ansatz von ScrapTrap.
Nachfolgend wird die Funktionsweise näher beschrieben.
User Agent-Whitelisting:
Hier können Sie User Agents whitelisten, ihnen also den Zugang erlauben, ohne dass diese gesperrt werden. Diese Funktion ist für spezielle Zwecke vorgesehen, z.B. für Tests oder falls Sie ein Audit in Auftrag gegeben haben und dieses mit einem speziellen Werkzeug, das am User Agent erkennbar ist, durchgeführt wird (z.B. ähnlich wie "Mozilla/5.0 (compatible; DSGVO-Check/2.0; Rechtssicherheit-Agentur i.A.)" - in diesem Fall wären gleich zwei Erkennungsmerkmale möglich, nämlich "DSGVO-Check" und "Rechtssicherheit-Agentur").
Sie können dabei entweder einen Schlüsselbegriff (bis zu 30 Zeichen) verwenden oder, falls nötig, diesen mit einem weiteren Begriff kombinieren. Dabei spielt es keine Rolle, welcher der beiden Begriff im User Agent (UA) zuerst vorkommt, es müssen lediglich beide vorhanden sein. Falls Sie nur einen Begriff verwenden, kann dieser in beide Felder eingetragen werden - das System erkennt beim Speichern automatisch die korrekte Zuordnung. Ein Eintrag ohne mindestens einen Schlüsselbegriff ist nicht möglich.
Zudem können Sie einen Ausschlussbegriff definieren, der im UA nicht vorkommen darf (ebenfalls bis zu 30 Zeichen). Dieser wird vorrangig ausgewertet - wird der Ausschlussbegriff im UA gefunden erfolgt kein Whitelisting!
Anwendungsbeispiel:
Um teure Abmahnungen von Konkurrenten oder Verbraucherschutzvereinen oder gar Bußgelder der Datenschutzbehörden zu vermeiden, beauftragen Sie eine darauf spezialisierte Agentur, Ihre Website oder Ihren Shop auf Datenschutzkonformität zu prüfen. Dazu gehört auch ein Check zur korrekten Einbindung von Consent-Bannern sowie die Überprüfung von nicht DSGVO-konformen Einbindungen von Skripten und Tools direkt im Seitenquelltext wie z.B. Google Tag Manager oder dem Session-Recording-Tool Microsoft Clarity (vgl. hierzu auch HTTP Header-Audit sowie Session-Recorder-Blocker 1.0).
Das Tool, das den Seitentext dafür ausliest und analysiert, heißt - wie könnte es anders sein - Mozilla/5.0 (compatible; DSGVO-Check/2.0; Rechtssicherheit-Agentur i.A.
Da Sie der Agentur auf deren Nachfrage hin mitgeteilt haben, dass auf Ihrem Server eine Botabwehr-Server läuft, die zeitlich gesteuerte Ausnahmeregelungen für externe Zugriffe ermöglicht einigen Sie sich auf einen bestimmten Zeitraum des Zugriffs, da eine genaue Uhrzeit nicht genannt werden kann, da der zuständige Mitarbeiter noch tausend andere Dinge zuerledigen hat, was mit "Es gibt an diesem Tag noch Meetings" umschrieben wird. Also wird ein grober Zeitraum von drei Tagen festgelegt.
Eintragsbeispiel:
Da Sie den genauen User Agent des Agentur-Tools kennen, der zudem noch recht auffällig ist, fällt es Ihnen nicht schwer, passende Zeichengruppen für Begriff 1 und in diesem Fall auch Begriff 2 zu wählen; Sie entscheiden sich für "DSGVO-Check/2.0" und "i.A.". Da es keine anderen Bots mit ähnlichem User Agent gibt, ist ein Ausschlussbegriff hier nicht notwendig. Da Sie wissen, dass das Audit innerhalb der nächsten drei Tage stattfinden woll, wählen Sie in der Spalte "Gültigkeitsdauer" im Dropdown-Menü "T" (Tage) den Eintrag 3. Und um den mit Meetings überlasteten Mitarbeiter noch ein kleines zusätzliches Zeitfenster einzuräumen, erhöhen Sie den Zeitraum durch Auswahl des Eintrags "12" im Dropdown-Menü "H" (Stunden).
Da es Ihnen wichtig ist, eine gewisse Kontrolle über die Abläufe, für die Sie der Agentur eine nicht unerhbliche Summe zahlen, zu behalten, tragen Sie Ihre E-Mail-Adresse in der Spalte "Benachrichtigung" ein - sobald das Agentur-Tool durch die ScrapTrap-Freigabekontrolle gelaufen ist, schickt Ihnen das System automatisch eine Vollzugs-E-Mail. Danach klicken Sie den Button "Eintragen" und erhalten eine Test-Mail mit der Angabe der hinterlegten Freigabe-Begriffe. Zudem erstellt die Funktion für jede korrekt eingetragene Zeile eine eindeutige ID-Nummer - diese ist wird benötigt, falls Sie beide Whitelisting-Funktionen kombinieren möchten (vgl. weiter unten).
Fertig!
User Agent Whitelisting
Da Ihnen aber nur die Steuerung über den User Agent - völlig zu Recht - etwas unsicher erscheint, erfragen Sie zudem bei der Agentur deren Hostangabe; glücklicherweise handelt es sich um eine ernsthafte Agentur mit eigenem Servernamen, der "host.srv12.rechtsagentur.de" heißt.
Um Aufrufe über diesen Host zu erlauben, tragen Sie ihn in die Eingabeoberfläche der Host-Whitelistingfunktion ein. Diese bietet die genau gleichen Optionen wie die Eingabeoberfläche für das UA-Whitelisting, d.h., auch hier können Sie wieder, wenn nötig, zwei Teilbegriff sowie einen Ausschlussbegriff eingeben sowie eine Mail-Adresse zu Benachrichtigung. In dem hier beispielhaft behandelten Fall macht es zudem Sinn, die gleiche Zeitwerte zu verwenden. Damit könnte der Eintrag für das Host-Whitelisting wie folgt aussehen:
Host Whitelisting
Auch hier wird wieder - falls eine Mail-Adresse eingetragen wird - eine Testmail verschickt sowie eine eindeutige ID pro Zeile generiert.
💡 Funktionshinweise:
- Das UA-Whitelisting überspringt ebenso wie das Host-Whitelisting aus Sicherheitsgründen niemals die Überprüfung von GET- und POST-Parametern / Variableninhalten, da derlei Manipulationen zu schweren Datenbankschäden führen können!
- Verwenden Sie N nur dann, wenn Sie diesem UA / Host absolut vertrauen. Sollte es sich um einen wiederkehrenden Dienst / Bot / Werkzeug handeln, tragen Sie den UA bevorzug als GoodBot ein, sofern Sie eine verlässliche, möglichst invariable Hostangabe hierzu eintragen können.
- Falls Sie einen Ausschlussbegriff eintragen und dieser im UA bzw. im Host enthalten ist, wird der UA / Host nicht whitegelistet und muss somit alle anderen Sicherheitsprüfungen durchlaufen, wobei er wie alle anderen Requests auch gesperrt werden kann.
- Mailbenachrichtigungen sind offline / im Intranet nur möglich bei existierendem Mailserver. Falls eine Mailadresse (bis 60 Zeichen) hinterlegt wird, verschickt das System nach dem Klick auf den Button "Eintragen" eine Testmail an die angegebene Adresse, sofern es sich um einen neuen oder editierten Eintrag handelt; bei mehreren neuen / editierten Einträgen werden entsprechend mehrere Mails gesendet - diese gilt für beide Whitelisting-Funktionen.
- Das Löschen von Einträgen ist denkbar einfach - entfernen Sie den Schlüsselbegriff bzw. die Schlüsselbegriffe aus den Eingabefeldern und klicken Sie auf "Eintragen"; der whitegelistete UA / Host wird daraufhin aus der Liste entfernt.
- Beachten Sie, dass die Funktionen "case sensitive" sind, d.h., es wird zwischen Groß- und Kleinschreibung unterschieden - der Eintrag "Erlaubter Bot" z.B. als Begriff 1 ist nicht das gleiche wie "erlaubter bot"; dies ist so beabsichtigt, um eine genaue Steuerung der erlaubten UAs / Hosts zu ermöglichen; dies gilt auch für Ausschlussbegriffe. Achten Sie beim Eintrag deshalb auf die genaue Schreibweise.
- Wird für Ablaufzeit weder ein Stunden- noch ein Tageswert angegeben und auch N nicht ausgewählt, geht das System davon aus, dass nur ein einziger, einmaliger Zugang gewünscht ist; direkt nach diesem Zugriff und der Erteilung der einmaligen Crawl-Erlaubnis für den eingetragenen UA entfernt das System den entsprechenden Eintrag aus der unten stehenden Verwaltungsliste. Für den Fall eines nur einmalig gewünschten erlaubten Zugangs wird die Verwendung der Mail-Funktion empfohlen. Tipp: Sollte das Werkzeug / der Bot standardmäßig mehrere Requests senden und die Anzahl bekannt sein, tragen Sie den UA in genau dieser Anzahl ein (z.B. dreimal für drei Aufrufe) - bei jedem eingehenden Request wird ein Eintrag aus der Liste entfernt.
- Falls Sie Ausschlussbegriffe definieren, achten Sie darauf, dass diese nicht für zwei erlaubte UA gleich sind. Dies würde zu unerwünschtem Verhalten der Funktion führen.
- Falls nötig, vergessen Sie nicht, die Robots.txt mit den UAs in Einklang zu bringen. Für das schnelle Editieren können Sie oben in der Service-Leiste den Eintrag RobT-Ed verwenden.
Zeitsteuerung:
Falls unklar ist, wann genau die Tests, das Audit etc. stattfinden, haben Sie die Möglichkeit, die Gültigkeit des Whitelistings zeitlich zu beschränken (H = Stunden, T = Tage); falls das Whitelisting permanent gültig sein soll, wählen Sie auf der rechten Seite die Checkbox N an; eingestellte Stunden / Tage werden bei aktivierter Checkbox bei der Eintragung dann nicht berücksichtigt und auf 0 gesetzt.
Falls nötig, können Sie sich per Mail benachrichtigen lassen, sobald ein Aufruf durch das freigegebene Werkzeug stattgefunden hat - tragen Sie nur eine Mail-Adresse ein, wenn die zeitliche Gültigkeit nicht unendlich ist, da Sie sonst jedesmal ein E-Mail erhalten werden - verwenden Sie diese Option also nur bei eingeschränkter zeitlicher Gültigkeit.
Den genauen Namen der Variablen finden Sie in der Admin im Menü-Eintrag des Whitelisting-Moduls.
... kommt später
Falls unklar ist, wann genau die Tests, das Audit etc. stattfinden, haben Sie die Möglichkeit, die Gültigkeit des Whitelistings zeitlich zu beschränken (H = Stunden, T = Tage); falls das Whitelisting permanent gültig sein soll, wählen Sie auf der rechten Seite die Checkbox N an; eingestellte Stunden / Tage werden bei aktivierter Checkbox bei der Eintragung dann nicht berücksichtigt und auf 0 gesetzt.
Falls nötig, können Sie sich per Mail benachrichtigen lassen, sobald ein Aufruf durch das freigegebene Werkzeug stattgefunden hat - tragen Sie nur eine Mail-Adresse ein, wenn die zeitliche Gültigkeit nicht unendlich ist, da Sie sonst jedesmal ein E-Mail erhalten werden - verwenden Sie diese Option also nur bei eingeschränkter zeitlicher Gültigkeit.
Wichtig:
1. Das UA-Whitelisting überspringt aus Sicherheitsgründen nicht die Überprüfung von GET- und POST-Parametern / Variableninhalten, da derlei Manipulationen zu schweren Datenbankschäden führen können!
2. Verwenden Sie N nur dann, wenn Sie diesem UA absolut vertrauen. Sollte es sich um einen wiederkehrenden Dienst / Bot / Werkzeug handeln, tragen Sie den UA bevorzug als GoodBot ein, sofern Sie eine verlässliche, möglichst invariable Hostangabe hierzu eintragen können.
3. Falls Sie einen Ausschlussbegriff eintragen und dieser im UA enthalten ist, wird der UA nicht whitegelistet und muss somit alle anderen Sicherheitsprüfungen durchlaufen, wobei er wie alle anderen Requests auch gesperrt werden kann.
4. Mailbenachrichtigungen sind offline / im Intranet nur möglich bei existierendem Mailserver. Falls eine Mailadresse (bis 60 Zeichen) hinterlegt wird, verschickt das System nach dem Klick auf den Button "Eintragen" eine Testmail an die angegebene Adresse, sofern es sich um einen neuen oder editierten Eintrag handelt; bei mehreren neuen / editierten Einträgen werden entsprechend mehrere Mails gesendet.
5. Das Löschen von Einträgen ist denkbar einfach - entfernen Sie den Schlüsselbegriff bzw. die Schlüsselbegriffe aus den Eingabefeldern und klicken Sie auf "Eintragen"; der whitegelistete UA wird daraufhin aus der Liste entfernt.
6. Beachten Sie, dass die Funktion "case sensitive" ist, d.h., es wird zwischen Groß- und Kleinschreibung unterschieden - der Eintrag "Erlaubter Bot" z.B. als Begriff 1 ist nicht das gleiche wie "erlaubter bot"; dies ist so beabsichtigt, um eine genaue Steuerung der erlaubten UA zu ermöglichen; dies gilt auch für Ausschlussbegriffe. Achten Sie beim Eintrag deshalb auf die genaue Schreibweise.
7. Wird für Ablaufzeit weder ein Stunden- noch ein Tageswert angegeben und auch N nicht ausgewählt, geht das System davon aus, dass nur ein einziger, einmaliger Zugang gewünscht ist; direkt nach diesem Zugriff und der Erteilung der einmaligen Crawl-Erlaubnis für den eingetragenen UA entfernt das System den entsprechenden Eintrag aus der unten stehenden Verwaltungsliste. Für den Fall eines nur einmalig gewünschten erlaubten Zugangs wird die Verwendung der Mail-Funktion empfohlen. Tipp: Sollte das Werkzeug / der Bot standardmäßig mehrere Requests senden und die Anzahl bekannt sein, tragen Sie den UA in genau dieser Anzahl ein (z.B. dreimal für drei Aufrufe) - bei jedem eingehenden Request wird ein Eintrag aus der Liste entfernt.
8. Falls Sie Ausschlussbegriffe definieren, achten Sie darauf, dass diese nicht für zwei erlaubte UA gleich sind. Dies würde zu unerwünschtem Verhalten der Funktion führen.
9. Falls nötig, vergessen Sie nicht, die Robots.txt mit den UAs in Einklang zu bringen. Für das schnelle Editieren können Sie oben in der Service-Leiste den Eintrag RobT-Ed verwenden.
10. Sie können das UA Whitelisting mit dem Host-Whitelisting kombinieren. Wenn ein Request von beiden Whitelists als explizit erlaubt verifiziert wird, besteht zudem die Möglichkeit nach dem Durchlauf der ScrapTrap-Sicherheitsmodule eine von Ihnen selbst erstellt PHP-Datei zu inkludieren (Hook), deren Zweck Sie frei definieren können, z.B.:
• Spezielle Schnittstellen öffnen: Bestimmte API-Funktionen oder Rohdaten-Exporte freischalten, die nicht für normale Besucher bestimmt sind.
• Erweitertes Logging: Den Zugriff in eine separate High-Security-Logdatei schreiben.
• Automatische (ev. zusätzliche) Mailbenachrichtigung an den Bot-Betreiber, z.B. ein beauftragte Agentur.
• Dynamische Weiterleitungen: Den Bot direkt auf einen speziellen Spiegel-Server oder in ein geschütztes Unterverzeichnis weiterleiten.
• Datenbank-Trigger: Einen Cronjob simulieren oder eine DB-Tabelle als "gelesen" markieren - oder was auch immer.
Die inkludierte Datei wird ausschließlich ausgeführt, wenn:
- UA‑Whitelist zutrifft,
- Host‑Whitelist zutrifft,
- die nicht überspringbaren ScrapTrap‑Sicherheitsmodule erfolgreich durchlaufen wurden.
Damit bleibt die Funktion sicher, deterministisch und vollständig unter Ihrer Kontrolle, ohne dass sicherheitsrelevante Prüfungen umgangen werden.