So blockieren Sie den Benutzerzugriff auf Servlet-Seiten mit HTTP_REFERER in Apache
Mit dem Wachstum von Webanwendungen steigt auch der Bedarf, sensible Seiten abzusichern und sie vor unbefugtem Zugriff, insbesondere durch automatisierte Bots, zu schützen. Wenn Sie sich in einer Situation befinden, in der Sie Benutzer daran hindern müssen, direkt auf bestimmte Servlet-Seiten zuzugreifen, jedoch nicht die Möglichkeit haben, den Anwendungsserver zu ändern, kann die Verwendung des HTTP_REFERER
-Headers von Apache Teil Ihrer Lösung sein.
In diesem Beitrag werden wir untersuchen, wie Sie den Zugriff mithilfe von HTTP_REFERER
in Ihrer .htaccess
-Datei effektiv blockieren können, indem wir die Schritte aufschlüsseln und klare Beispiele bereitstellen, um Ihnen zu helfen, Ihr Ziel zu erreichen.
Verständnis des HTTP_REFERER
Der HTTP_REFERER
ist ein HTTP-Header, der die Adresse der Webseite identifiziert, die auf die angeforderte Ressource verlinkt hat. Einfach gesagt, er teilt Ihrem Server mit, woher ein Benutzer kam, bevor er auf eine bestimmte Seite zugreift.
Warum den HTTP_REFERER zum Blockieren des Zugriffs verwenden?
- Sicherheitsmaßnahme: Auch wenn es nicht narrensicher ist, dient es als erste Barriere gegen unbefugten Zugriff.
- Einfachheit der Implementierung: Wenn Sie die Kontrolle über den Webserver, aber nicht über die Anwendungslogik haben, ist dies ein praktischer Ansatz.
- Verhinderung automatisierter Anfragen: Es ist entscheidend, direkte Anfragen von externen Quellen oder Bots zu blockieren, wenn Sie Ihre Formulare sicher und nur durch legitime Mittel funktionsfähig halten möchten.
Einrichten der .htaccess Umschreiberegeln
Um die Blockierung basierend auf dem HTTP_REFERER
umzusetzen, müssen Sie Regeln in Ihrer .htaccess
-Datei hinzufügen. So können Sie Ihre Regeln effektiv strukturieren.
Grundlegende Umschreiberegel
Sie könnten mit einer einfachen Regel wie dieser beginnen:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://mywebaddress(.cl)?/.* [NC]
RewriteRule (servlet1|servlet2)/.+ - [F]
Erklärung:
RewriteEngine on
: Aktiviert die Umschreibemaschine.RewriteCond
überprüft, ob derHTTP_REFERER
nicht mit Ihrer angegebenen Seite übereinstimmt.RewriteRule
zielt auf Anfragen anservlet1
oderservlet2
ab.
Verbesserte Umschreiberegel
Wenn Sie jedoch Ihre Prüfungen verfeinern möchten, um nur legitime Anfragen zuzulassen, die von Ihrer Webseite kommen und solche mit Abfragezeichenfolgen zu blockieren, benötigen Sie eine komplexere Logik:
RewriteCond %{HTTP_REFERER} !^http://mywebaddress(.cl)?/.* [NC]
RewriteCond %{QUERY_STRING} ^.+$ [OR]
RewriteCond %{REQUEST_METHOD} ^POST$ [OR]
RewriteCond %{PATH_INFO} ^.+$
RewriteRule (servlet1|servlet2)\b - [F]
Aufschlüsselung der verbesserten Regel:
- Erste Bedingung: Überprüft, dass Anfragen nicht von den angegebenen Seiten-URLs kommen.
- Zweite Bedingung: Blockiert Anfragen mit nicht leeren Abfragezeichenfolgen.
- Dritte Bedingung: Blockiert POST-Anfragen direkt.
- Vierte Bedingung: Blockiert Anfragen mit PATH_INFO.
Die Kombination dieser Bedingungen stellt sicher, dass nur gültige Anfragen, die durch die Umgebung Ihrer Website navigieren, die angegebenen Servlet-Seiten erreichen können.
Fazit
Während die Abhängigkeit von HTTP_REFERER
möglicherweise keine narrensichere Sicherheit bietet, ist es ein effektives erstes Maßnahme, um den Zugriff auf sensible Seiten einzuschränken. Diese Methode ist besonders nützlich, wenn auf Anwendungsebene keine umfassenden Änderungen vorgenommen werden können.
Als Erinnerung: Dieser Ansatz fügt eine weitere Sicherheitsebene hinzu, ist jedoch keine vollständige Lösung. Überlegen Sie immer, die serverseitige Validierung zu verstärken und zusätzliche Sicherheitsmaßnahmen zu erkunden, während Ihre Anwendung und deren Benutzerbasis wachsen.
Wenn Sie diese Methoden ausprobiert haben oder zusätzliche Erkenntnisse haben, hinterlassen Sie bitte einen Kommentar – Ihre Erfahrungen können anderen helfen, ähnliche Herausforderungen zu bewältigen!