request-shield vor einer öffentlichen Website
Diese Seite richtet sich an Administratorinnen und Administratoren sowie Hosting-Teams öffentlicher Websites. Öffentliche Websites erhalten jeden Tag Scanner, Angriffe auf Zugangsdaten und Scraper. request-shield ist eine kleine Web Application Firewall für PHP, die über jede Anfrage entscheidet, bevor der Kernel von Exponential startet: Sie weist Scanner und fehlerhafte Anfragen ab, bremst Fluten, verlangt von verdächtigen Clients eine unsichtbare Browserprüfung und kann die Administration einschränken (Sicherheitshärtung: Ein vorgeschalteter Schutz).
Inhalt
- Was es ist und was nicht
- Klassifizierung und Schutz nebeneinander
- Einführen
- Hinweise zu Beschaffung und Steuerung
- Verwandte Seiten
Was es ist und was nicht
- Eine eigenständige Bibliothek: https://github.com/cjw-network/request-shield, MIT-Lizenz, vom CJW Network.
- Nicht Teil der
composer.jsonvon Exponential; Sie fügen es mitcomposer require cjw-network/request-shieldhinzu oder als Checkout außerhalb des Document-Root. - Es kann ein richtiges Passwort nicht von einem falschen unterscheiden: Kontosperre und zweistufige Anmeldung bleiben Aufgabe von Exponential.
- Es sieht keine statischen Dateien, die der Webserver selbst ausliefert.
Klassifizierung und Schutz nebeneinander
| Anfrageklassifizierung des Kernels | request-shield | |
|---|---|---|
| Tut | klassifiziert nur (Sondierung, Traversal, Injection, Scanner, 404-Häufungen) | entscheidet: abweisen, bremsen, prüfen, sperren oder nur protokollieren |
| Läuft | im Kernel | vor dem Kernel |
| Protokoll | var/log/security.log | ein eigenes Protokoll und eine Live-Ansicht unter /rs/ |
| Einstellungen | settings/requestclassifier.ini | seine Regeldateien |
Wo sie sich überschneiden, verwenden beide dieselben Regelnamen, sodass sich eine Zeile des einen im anderen finden lässt.
Einführen
- Installieren Sie die Bibliothek; kopieren Sie die Beispielregeln für Exponential aus ihrem Verzeichnis
examples/exponential/in ein Verzeichnis, das der Webserver nie ausliefert (die Bibliothek schlägtsettings/request-shield/vor). - Wählen Sie die Hauptdatei:
exponential-admin-uri.rules(Administration unter/adminauf demselben Host) oderexponential-admin-host.rules(Administration auf eigenem Host). - Schalten Sie es für jede Anfrage ein: mit PHP-FPM ein Aufruf von
Shield::protectFile()am Anfang vonconfig.phpoderauto_prepend_file; unter Velocity die Datei, die in der KonstanteEXP_REQUEST_PREPEND_FILEgenannt ist (seit 6.0.15). - Zuerst der Beobachtungsmodus (
set mode monitor, wie die Beispiele ausgeliefert werden): Lesen Sie das Protokoll einige Tage lang, während die Redaktion arbeitet. - Passen Sie die website-spezifischen Zeilen an (Siteaccesses, Module von Erweiterungen, die Formulare annehmen, Hostnamen, Load Balancer).
- Prüfen und testen Sie nach jeder Änderung:
bin/request-shield check <main file>,bin/request-shield test <main file>,bin/request-shield trace <main file> "GET https://www.example.gov/...". - Wechseln Sie zu
set mode enforce; beobachten Sie die Sperr- und strengen Regeln, bis ihr Protokoll sauber ist. - Zum Abschalten verwenden Sie
set mode off, statt das Include zu entfernen.
Hinweise zu Beschaffung und Steuerung
- Es ist Open-Source-Software eines Dritten: Führen Sie es mit Lizenz und Version in Ihrem Softwareverzeichnis und verfolgen Sie seine Releases wie bei jeder Abhängigkeit.
- Sein Protokoll enthält Adressen von Besuchern; nehmen Sie es in Ihr Verzeichnis von Verarbeitungstätigkeiten und seine Aufbewahrung in Ihren Aufbewahrungsplan auf.
- Die Beispielregeln beschränken System-URLs und Administrationsmodule auf der öffentlichen Website, was auch die Angriffsfläche für Scanner verkleinert.
Verwandte Seiten
- Sicherheitshärtung
- Anfrageprotokolle
- request-shield und Anfrageregeln für Hoster
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.